[2025-10-29 00:45:46] ERROR: BookService@ubah | Ada percobaan untuk mengubah kode eksemplar ketika buku sedang dipinjamkan;
[2025-10-29 00:46:07] INFO: App\Models\Rent@datatable_fetch | Table = vw_rents; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 00:46:20] ERROR: BookService@searchCopyId | Error: Buku sedang dipinjamkan;
[2025-10-29 00:46:30] INFO: App\Models\Rent@datatable_fetch | Table = vw_rents; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 00:47:20] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 00:47:31] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 18:09:04] INFO: AuthController@login | Attempt login for user: root
[2025-10-29 18:09:05] INFO: UserService@login | user: root; refreshToken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMxMDAvd2ViLWFwaS92MS9sb2dpbiIsImlhdCI6MTc2MTczNjE0NSwiZXhwIjoxNzYxNzc5MzQ1LCJuYmYiOjE3NjE3MzYxNDUsImp0aSI6IlRZMWdNUUlrYm1rTWtEclQiLCJzdWIiOiIxIiwidHlwZSI6InJlZnJlc2giLCJ1c2VybmFtZSI6InJvb3QifQ.Tls64g2Giy_k2Fjtsl9mWffcgNqLzwywMfQ-7nQU5D8
[2025-10-29 18:09:05] INFO: UserService@generateAccessToken | accessToken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMxMDAvd2ViLWFwaS92MS9sb2dpbiIsImlhdCI6MTc2MTczNjE0NSwiZXhwIjoxNzYxNzM3MDQ1LCJuYmYiOjE3NjE3MzYxNDUsImp0aSI6IjdkUWRWeGZPZklPUXAxR3ciLCJzdWIiOiIxIiwidHlwZSI6ImFjY2VzcyIsInVzZXJuYW1lIjoicm9vdCJ9.w-DjiC_2JnMatRX7l4ofLEUyEIulQ7TLsJMO5TO0udM
[2025-10-29 20:25:24] INFO: App\Models\Rent@datatable_fetch | Table = vw_rents; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 20:25:29] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 20:25:49] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 20:30:37] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 20:30:54] INFO: App\Models\Rent@datatable_fetch | Table = vw_rents; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 20:31:04] ERROR: BookService@searchCopyId | Error: Buku sedang dipinjamkan;
[2025-10-29 20:31:05] ERROR: BookService@searchCopyId | Error: Buku sedang dipinjamkan;
[2025-10-29 20:31:14] INFO: App\Models\Rent@datatable_fetch | Table = vw_rents; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 20:51:13] ERROR: ReturnRequest@failedAuthorization#POST | Error: User tidak memiliki otoritas
[2025-10-29 20:51:14] INFO: UserService@generateAccessToken | Attempt generate new access token from refresh token in cookie
[2025-10-29 20:51:14] INFO: UserService@generateAccessToken | Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMxMDAvd2ViLWFwaS92MS9sb2dpbiIsImlhdCI6MTc2MTczNjE0NSwiZXhwIjoxNzYxNzc5MzQ1LCJuYmYiOjE3NjE3MzYxNDUsImp0aSI6IlRZMWdNUUlrYm1rTWtEclQiLCJzdWIiOiIxIiwidHlwZSI6InJlZnJlc2giLCJ1c2VybmFtZSI6InJvb3QifQ.Tls64g2Giy_k2Fjtsl9mWffcgNqLzwywMfQ-7nQU5D8
[2025-10-29 20:51:34] ERROR: ReturnRequest@failedAuthorization#POST | Error: User tidak memiliki otoritas
[2025-10-29 20:51:36] INFO: UserService@generateAccessToken | Attempt generate new access token from refresh token in cookie
[2025-10-29 20:51:36] INFO: UserService@generateAccessToken | Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMxMDAvd2ViLWFwaS92MS9sb2dpbiIsImlhdCI6MTc2MTczNjE0NSwiZXhwIjoxNzYxNzc5MzQ1LCJuYmYiOjE3NjE3MzYxNDUsImp0aSI6IlRZMWdNUUlrYm1rTWtEclQiLCJzdWIiOiIxIiwidHlwZSI6InJlZnJlc2giLCJ1c2VybmFtZSI6InJvb3QifQ.Tls64g2Giy_k2Fjtsl9mWffcgNqLzwywMfQ-7nQU5D8
[2025-10-29 20:54:10] ERROR: ReturnRequest@failedAuthorization#POST | Error: User tidak memiliki otoritas
[2025-10-29 21:13:52] ERROR: RentHistory@tambah | Error: SQLSTATE[HY000]: General error: 1364 Field 'pustakawan_handler' doesn't have a default value (Connection: mysql, SQL: insert into `rent_histories` (`member_id`, `name`, `phone`, `updated_at`, `created_at`) values (2013185, Stevan Nathan, 58303399, 42002118, 08180893212, 2025-10-29 21:13:52, 2025-10-29 21:13:52));
[2025-10-29 21:15:59] ERROR: ReturnService@cariDataPinjaman | Error: Tidak ada data yang ditemukan;
[2025-10-29 21:16:14] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:25:31] ERROR: RentDetail@fetchRentDetailBackward | Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'r.jumlah_buku' in 'field list' (Connection: mysql, SQL: select `rd`.`id` as `id`, `rd`.`rent_id` as `rent_id`, `r`.`jumlah_buku` as `jumlah_buku`, `m`.`member_id` as `member_id`, `m`.`name` as `name`, `m`.`phone` as `phone`, `b`.`id` as `book_id`, `b`.`title` as `title`, `b`.`author` as `author`, `b`.`publisher` as `publisher`, `b`.`publish_date` as `publish_date`, `b`.`cover_img` as `cover_img`, `b`.`classification` as `classification`, `b`.`copy_id` as `copy_id`, `rd`.`rent_date` as `rent_date`, `rd`.`expected_return_date` as `expected_return_date`, `rd`.`return_date` as `return_date`, `rd`.`fine_amount` as `fine_amount`, `rd`.`fine_paid` as `fine_paid` from `vw_rent_details` as `rd` left join `members` as `m` on `m`.`member_id` = `rd`.`member_id` left join `books` as `b` on `b`.`id` = `rd`.`book_id` left join `vw_rent_details` as `r` on `r`.`rent_id` = `rd`.`rent_id` where `rd`.`unique_id` = f564d69c-d9a0-40db-8569-b20fa149affc limit 1);
[2025-10-29 21:26:06] ERROR: ReturnService@prosesPengembalian | Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rent_id' in 'where clause' (Connection: mysql, SQL: delete from `rents` where `rent_id` = 1); Line: 829
[2025-10-29 21:29:21] ERROR: ReturnService@cariDataPinjaman | Error: Tidak ada data yang ditemukan;
[2025-10-29 21:29:30] INFO: App\Models\Rent@datatable_fetch | Table = vw_rents; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:29:47] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:29:55] INFO: App\Models\Member@datatable_fetch | Table = vw_members; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"member_id","orderDirection":"desc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:30:35] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:36:54] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:41:57] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:42:32] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:43:20] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:47:03] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:48:35] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:50:30] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:52:39] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:54:27] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 21:59:31] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 22:01:10] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 22:01:35] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 22:08:15] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 22:08:56] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 22:10:09] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 22:11:19] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 22:14:32] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 22:18:11] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 22:20:00] INFO: App\Models\Rent@datatable_fetch | Table = vw_rents; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 22:20:10] ERROR: MemberService@search | Data anggota tidak ditemukan;
[2025-10-29 22:20:34] INFO: App\Models\Rent@datatable_fetch | Table = vw_rents; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-29 22:20:47] ERROR: ReturnService@cariDataPinjaman | Error: Tidak ada data yang ditemukan;
[2025-10-29 22:34:03] INFO: App\Models\Book@datatable_fetch | Table = vw_book_copies; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"title","orderDirection":"asc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-30 20:20:35] INFO: AuthController@login | Attempt login for user: root
[2025-10-30 20:20:36] INFO: UserService@login | user: root; refreshToken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMxMDAvd2ViLWFwaS92MS9sb2dpbiIsImlhdCI6MTc2MTgzMDQzNSwiZXhwIjoxNzYxODczNjM1LCJuYmYiOjE3NjE4MzA0MzUsImp0aSI6IlZGeUl5YXczYklWYjdnRU4iLCJzdWIiOiIxIiwidHlwZSI6InJlZnJlc2giLCJ1c2VybmFtZSI6InJvb3QifQ.Ty_eB-haaGAQxUt6JKMq8xZ_gkkNeVBRHAOBT-Bzl9o
[2025-10-30 20:20:36] INFO: UserService@generateAccessToken | accessToken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMxMDAvd2ViLWFwaS92MS9sb2dpbiIsImlhdCI6MTc2MTgzMDQzNiwiZXhwIjoxNzYxODMxMzM2LCJuYmYiOjE3NjE4MzA0MzYsImp0aSI6IjJCdXZkQTdVTllTeTEwckYiLCJzdWIiOiIxIiwidHlwZSI6ImFjY2VzcyIsInVzZXJuYW1lIjoicm9vdCJ9.vZxIK31ntgz9ZXqbHE-35F3J_bgAcJOFiYv3-tDh8UQ
[2025-10-30 21:03:04] INFO: App\Models\Rent@datatable_fetch | Table = vw_rents; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-30 21:03:31] INFO: App\Models\Rent@datatable_fetch | Table = vw_rents; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-30 23:32:10] ERROR: ReturnService@cariDataPinjaman | Error: Tidak ada data yang ditemukan;
[2025-10-30 23:52:13] INFO: App\Models\Member@datatable_fetch | Table = vw_members; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"member_id","orderDirection":"desc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-30 23:52:23] INFO: App\Models\Member@datatable_fetch | Table = vw_members; datatable_component = {"custom_filter":null,"where":[],"whereLike":[],"order":"member_id","orderDirection":"desc","limit":"10","offset":"0","has_column_deleted_at":false}
[2025-10-31 00:04:25] ERROR: Target class [Database\Seeders\CreateViewFine] does not exist.
[2025-10-31 00:05:27] ERROR: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'm.phone' in 'field list' (Connection: mysql, SQL: CREATE OR REPLACE VIEW vw_fines AS
            SELECT
                rh.id AS id,
                rh.unique_id AS unique_id,
                rh.member_id AS member_id,
                rh.name AS name,
                IFNULL(m.phone, '-') AS phone_raw,

                IFNULL(REPLACE(REGEXP_SUBSTR(m.phone, '08[0-9-]{7,}'), '-', ''), '-') AS phone,

                rh.fine_amount AS fine_amount,
                rh.fine_paid AS fine_paid,
                rh.fine_paid_date AS fine_paid_date,
                rh.remarks AS remarks,
                rh.pustakawan_handler AS pustakawan_handler,

                CONCAT('Rp ', FORMAT(rh.fine_amount, 0, 'id_ID')) AS fine_amount_display,
                CONCAT('Rp ', FORMAT(rh.fine_paid, 0, 'id_ID')) AS fine_paid_display,

                IFNULL(DATE_FORMAT(rh.fine_paid_date, '%d %b %Y'), '-') AS fine_paid_date_display,

                1 AS escape
            FROM rent_histories rh;
        )
[2025-10-31 00:05:51] ERROR: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'm.phone' in 'field list' (Connection: mysql, SQL: CREATE OR REPLACE VIEW vw_fines AS
            SELECT
                rh.id AS id,
                rh.unique_id AS unique_id,
                rh.member_id AS member_id,
                rh.name AS name,
                IFNULL(rh.phone, '-') AS phone_raw,

                IFNULL(REPLACE(REGEXP_SUBSTR(m.phone, '08[0-9-]{7,}'), '-', ''), '-') AS phone,

                rh.fine_amount AS fine_amount,
                rh.fine_paid AS fine_paid,
                rh.fine_paid_date AS fine_paid_date,
                rh.remarks AS remarks,
                rh.pustakawan_handler AS pustakawan_handler,

                CONCAT('Rp ', FORMAT(rh.fine_amount, 0, 'id_ID')) AS fine_amount_display,
                CONCAT('Rp ', FORMAT(rh.fine_paid, 0, 'id_ID')) AS fine_paid_display,

                IFNULL(DATE_FORMAT(rh.fine_paid_date, '%d %b %Y'), '-') AS fine_paid_date_display,

                1 AS escape
            FROM rent_histories rh;
        )
