[2026-04-25 19:39:10] local.INFO: Login BO  
[2026-04-25 19:39:10] local.INFO: Admin ID 2  
[2026-04-25 19:49:28] local.INFO: Login BO  
[2026-04-25 19:49:28] local.INFO: Admin ID 2  
[2026-04-25 19:51:12] local.INFO: Login BO  
[2026-04-25 19:51:12] local.INFO: Admin ID 2  
[2026-04-25 21:01:15] local.INFO: Login BO  
[2026-04-25 21:01:15] local.INFO: Admin ID 2  
[2026-04-25 21:07:39] local.INFO: Login BO  
[2026-04-25 21:07:39] local.INFO: Admin ID 2  
[2026-04-25 21:16:37] local.INFO: Login BO  
[2026-04-25 21:16:37] local.INFO: Admin ID 2  
[2026-04-25 21:48:56] local.INFO: Login BO  
[2026-04-25 21:48:57] local.INFO: Admin ID 2  
[2026-04-26 00:53:26] local.INFO: Login BO  
[2026-04-26 00:53:26] local.INFO: Admin ID 7  
[2026-04-26 09:26:09] local.INFO: Login BO  
[2026-04-26 09:26:09] local.INFO: Admin ID 2  
[2026-04-28 17:27:11] local.INFO: Login BO  
[2026-04-28 17:27:12] local.INFO: Admin ID 7  
[2026-04-28 17:28:47] local.INFO: SQL permintaan barang 
            SELECT 
                sub.kode,
                sub.item_name,
                sub.status_code_name,
                sub.is,
                sub.pr,
                sub.pi,
                sub.pt,
                sub.to,
                sub.sr,
                sub.rc,
                sub.ti,
                sub.si_do,
                sub.qtyonhand,
                sub.si_do AS sale, 
                ((sub.`is` + sub.pr + sub.pi + sub.pt + sub.`to` + sub.ti + sub.si_do + sub.sr + sub.rc) + sub.qtyonhand) AS QOH,
                sub.si_do6,
                ((sub.`is6` + sub.pr6 + sub.pi6 + sub.pt6 + sub.`to6` + sub.ti6 + sub.si_do6 + sub.sr6 + sub.rc6) + sub.qtyonhand6) AS QOH6,
                sub.si_do5,
                ((sub.`is5` + sub.pr5 + sub.pi5 + sub.pt5 + sub.`to5` + sub.ti5 + sub.si_do5 + sub.sr5 + sub.rc5) + sub.qtyonhand5) AS QOH5,
                sub.si_do4,
                ((sub.`is4` + sub.pr4 + sub.pi4 + sub.pt4 + sub.`to4` + sub.ti4 + sub.si_do4 + sub.sr4 + sub.rc4) + sub.qtyonhand4) AS QOH4,
                sub.si_do3,
                ((sub.`is3` + sub.pr3 + sub.pi3 + sub.pt3 + sub.`to3` + sub.ti3 + sub.si_do3 + sub.sr3 + sub.rc3) + sub.qtyonhand3) AS QOH3,
                sub.si_do2,
                ((sub.`is2` + sub.pr2 + sub.pi2 + sub.pt2 + sub.`to2` + sub.ti2 + sub.si_do2 + sub.sr2 + sub.rc2) + sub.qtyonhand2) AS QOH2,
                CEIL(DATEDIFF(CURDATE(), sub.inventory_movement_date)) AS doi,
                sub.countername,
                sub.counter_id
            FROM (
                SELECT
                    a.product_code AS kode,
                    a.product_name AS item_name,
                    cd.status_code_name AS status_code_name,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '10' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity ELSE 0 END) AS rc,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '1' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `is`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '2' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity ELSE 0 END) AS  pr,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '3' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity ELSE 0 END) AS pi,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '4' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS pt,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '5' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `to`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '6' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity ELSE 0 END) AS ti,
                    SUM(CASE 
                        WHEN b.transaction_type_id IN (8,7)
                            AND b.inventory_movement_date  BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH))
                        THEN b.quantity*-1 ELSE 0 END) AS si_do,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '9' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity ELSE 0 END) AS sr,
                    COALESCE(stok.beginning_stock, 0) AS qtyonhand,

                    SUM(CASE 
                        WHEN b.transaction_type_id = '10' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity ELSE 0 END) AS rc6,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '1' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `is6`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '2' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity ELSE 0 END) AS  pr6,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '3' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity ELSE 0 END) AS pi6,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '4' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS pt6,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '5' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `to6`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '6' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity ELSE 0 END) AS ti6,
                    SUM(CASE 
                        WHEN b.transaction_type_id IN (8,7)
                            AND b.inventory_movement_date  BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH))
                        THEN b.quantity*-1 ELSE 0 END) AS si_do6,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '9' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity ELSE 0 END) AS sr6,
                    COALESCE(stok6.beginning_stock, 0) AS qtyonhand6,

                    SUM(CASE 
                        WHEN b.transaction_type_id = '10' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity ELSE 0 END) AS rc5,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '1' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `is5`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '2' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity ELSE 0 END) AS  pr5,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '3' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity ELSE 0 END) AS pi5,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '4' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS pt5,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '5' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `to5`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '6' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity ELSE 0 END) AS ti5,
                    SUM(CASE 
                        WHEN b.transaction_type_id IN (8,7)
                            AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS si_do5,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '9' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity ELSE 0 END) AS sr5,
                    COALESCE(stok5.beginning_stock, 0) AS qtyonhand5,

                    SUM(CASE 
                        WHEN b.transaction_type_id = '10' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity ELSE 0 END) AS rc4,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '1' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `is4`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '2' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity ELSE 0 END) AS  pr4,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '3' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity ELSE 0 END) AS pi4,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '4' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS pt4,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '5' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `to4`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '6' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity ELSE 0 END) AS ti4,
                    SUM(CASE 
                        WHEN b.transaction_type_id IN (8,7)
                            AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS si_do4,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '9' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity ELSE 0 END) AS sr4,
                    COALESCE(stok4.beginning_stock, 0) AS qtyonhand4,

                    SUM(CASE 
                        WHEN b.transaction_type_id = '10' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity ELSE 0 END) AS rc3,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '1' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `is3`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '2' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity ELSE 0 END) AS  pr3,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '3' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity ELSE 0 END) AS pi3,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '4' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS pt3,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '5' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `to3`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '6' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity ELSE 0 END) AS ti3,
                    SUM(CASE 
                        WHEN b.transaction_type_id IN (8,7)
                            AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS si_do3,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '9' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity ELSE 0 END) AS sr3,
                    COALESCE(stok3.beginning_stock, 0) AS qtyonhand3,

                    SUM(CASE 
                        WHEN b.transaction_type_id = '10' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity ELSE 0 END) AS rc2,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '1' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `is2`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '2' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity ELSE 0 END) AS  pr2,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '3' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity ELSE 0 END) AS pi2,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '4' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS pt2,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '5' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `to2`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '6' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity ELSE 0 END) AS ti2,
                    SUM(CASE 
                        WHEN b.transaction_type_id IN (8,7)
                            AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS si_do2,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '9' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity ELSE 0 END) AS sr2,
                    COALESCE(stok2.beginning_stock, 0) AS qtyonhand2,

                 c.name as countername,
                 c.counter_id,
                    MAX(b.inventory_movement_date) AS inventory_movement_date
                FROM product a
                LEFT JOIN status_code cd ON cd.status_code_id = a.status_code_id
                LEFT JOIN inventory_movement b ON a.product_id = b.product_id AND b.counter_id = 83 
                LEFT JOIN counter c on c.counter_id = b.counter_id
                LEFT JOIN (
                    select 
                        a.product_id,
                        a.counter_id, 
                        (a.`IS` + a.PR + a.PI + a.PT + a.`TO` + a.TI + a.`DO` + a.SI + a.SR + a.RC) AS beginning_stock
                    from (
                        select 
                            SUM(CASE WHEN transaction_type_id = '1' THEN im.quantity*-1 ELSE 0 END) AS `IS`,
                            SUM(CASE WHEN transaction_type_id = '2' THEN im.quantity ELSE 0 END) AS PR,
                            SUM(CASE WHEN transaction_type_id = '3' THEN im.quantity ELSE 0 END) AS PI,
                            SUM(CASE WHEN transaction_type_id = '4' THEN im.quantity*-1 ELSE 0 END) AS PT,
                            SUM(CASE WHEN transaction_type_id = '5' THEN im.quantity*-1 ELSE 0 END) AS `TO`,
                            SUM(CASE WHEN transaction_type_id = '6' THEN im.quantity ELSE 0 END) AS TI,
                            SUM(CASE WHEN transaction_type_id = '7' THEN im.quantity*-1 ELSE 0 END) AS `DO`,
                            SUM(CASE WHEN transaction_type_id = '8' THEN im.quantity*-1 ELSE 0 END) AS SI,
                            SUM(CASE WHEN transaction_type_id = '9' THEN im.quantity ELSE 0 END) AS SR,
                            SUM(CASE WHEN transaction_type_id = '10' THEN im.quantity ELSE 0 END) AS RC,
                            im.product_id,
                            im.counter_id
                        FROM inventory_movement im
                        WHERE im.status_record != 'D'
                          and DATE(im.inventory_movement_date) < DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND im.counter_id = 83 GROUP BY im.product_id, im.counter_id 
                    ) a
                ) stok ON stok.product_id = b.product_id AND stok.counter_id = b.counter_id
                LEFT JOIN (
                    select 
                        a.product_id, 
                        a.counter_id,
                        (a.`IS` + a.PR + a.PI + a.PT + a.`TO` + a.TI + a.`DO` + a.SI + a.SR + a.RC) AS beginning_stock
                    from (
                        select 
                            SUM(CASE WHEN transaction_type_id = '1' THEN im.quantity*-1 ELSE 0 END) AS `IS`,
                            SUM(CASE WHEN transaction_type_id = '2' THEN im.quantity ELSE 0 END) AS PR,
                            SUM(CASE WHEN transaction_type_id = '3' THEN im.quantity ELSE 0 END) AS PI,
                            SUM(CASE WHEN transaction_type_id = '4' THEN im.quantity*-1 ELSE 0 END) AS PT,
                            SUM(CASE WHEN transaction_type_id = '5' THEN im.quantity*-1 ELSE 0 END) AS `TO`,
                            SUM(CASE WHEN transaction_type_id = '6' THEN im.quantity ELSE 0 END) AS TI,
                            SUM(CASE WHEN transaction_type_id = '7' THEN im.quantity*-1 ELSE 0 END) AS `DO`,
                            SUM(CASE WHEN transaction_type_id = '8' THEN im.quantity*-1 ELSE 0 END) AS SI,
                            SUM(CASE WHEN transaction_type_id = '9' THEN im.quantity ELSE 0 END) AS SR,
                            SUM(CASE WHEN transaction_type_id = '10' THEN im.quantity ELSE 0 END) AS RC,
                            im.product_id,
                            im.counter_id
                        FROM inventory_movement im
                        WHERE im.status_record != 'D'
                          and DATE(im.inventory_movement_date) < DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND im.counter_id = 83 GROUP BY im.product_id, im.counter_id
                    ) a
                ) stok6 ON stok6.product_id = b.product_id AND stok6.counter_id = b.counter_id 

                LEFT JOIN (
                    select 
                        a.product_id, 
                        a.counter_id,
                        (a.`IS` + a.PR + a.PI + a.PT + a.`TO` + a.TI + a.`DO` + a.SI + a.SR + a.RC) AS beginning_stock
                    from (
                        select 
                            SUM(CASE WHEN transaction_type_id = '1' THEN im.quantity*-1 ELSE 0 END) AS `IS`,
                            SUM(CASE WHEN transaction_type_id = '2' THEN im.quantity ELSE 0 END) AS PR,
                            SUM(CASE WHEN transaction_type_id = '3' THEN im.quantity ELSE 0 END) AS PI,
                            SUM(CASE WHEN transaction_type_id = '4' THEN im.quantity*-1 ELSE 0 END) AS PT,
                            SUM(CASE WHEN transaction_type_id = '5' THEN im.quantity*-1 ELSE 0 END) AS `TO`,
                            SUM(CASE WHEN transaction_type_id = '6' THEN im.quantity ELSE 0 END) AS TI,
                            SUM(CASE WHEN transaction_type_id = '7' THEN im.quantity*-1 ELSE 0 END) AS `DO`,
                            SUM(CASE WHEN transaction_type_id = '8' THEN im.quantity*-1 ELSE 0 END) AS SI,
                            SUM(CASE WHEN transaction_type_id = '9' THEN im.quantity ELSE 0 END) AS SR,
                            SUM(CASE WHEN transaction_type_id = '10' THEN im.quantity ELSE 0 END) AS RC,
                            im.product_id,
                            im.counter_id
                        FROM inventory_movement im
                        WHERE im.status_record != 'D'
                          and DATE(im.inventory_movement_date) < DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND im.counter_id = 83 GROUP BY im.product_id, im.counter_id
                    ) a
                ) stok5 ON stok5.product_id = b.product_id AND stok5.counter_id = b.counter_id

                LEFT JOIN (
                    select 
                        a.product_id, 
                        a.counter_id,
                        (a.`IS` + a.PR + a.PI + a.PT + a.`TO` + a.TI + a.`DO` + a.SI + a.SR + a.RC) AS beginning_stock
                    from (
                        select 
                            SUM(CASE WHEN transaction_type_id = '1' THEN im.quantity*-1 ELSE 0 END) AS `IS`,
                            SUM(CASE WHEN transaction_type_id = '2' THEN im.quantity ELSE 0 END) AS PR,
                            SUM(CASE WHEN transaction_type_id = '3' THEN im.quantity ELSE 0 END) AS PI,
                            SUM(CASE WHEN transaction_type_id = '4' THEN im.quantity*-1 ELSE 0 END) AS PT,
                            SUM(CASE WHEN transaction_type_id = '5' THEN im.quantity*-1 ELSE 0 END) AS `TO`,
                            SUM(CASE WHEN transaction_type_id = '6' THEN im.quantity ELSE 0 END) AS TI,
                            SUM(CASE WHEN transaction_type_id = '7' THEN im.quantity*-1 ELSE 0 END) AS `DO`,
                            SUM(CASE WHEN transaction_type_id = '8' THEN im.quantity*-1 ELSE 0 END) AS SI,
                            SUM(CASE WHEN transaction_type_id = '9' THEN im.quantity ELSE 0 END) AS SR,
                            SUM(CASE WHEN transaction_type_id = '10' THEN im.quantity ELSE 0 END) AS RC,
                            im.product_id,
                            im.counter_id
                        FROM inventory_movement im
                        WHERE im.status_record != 'D'
                          and DATE(im.inventory_movement_date) < DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND im.counter_id = 83 GROUP BY im.product_id, im.counter_id
                    ) a
                ) stok4 ON stok4.product_id = b.product_id AND stok4.counter_id = b.counter_id

                LEFT JOIN (
                    select 
                        a.product_id, 
                        a.counter_id,
                        (a.`IS` + a.PR + a.PI + a.PT + a.`TO` + a.TI + a.`DO` + a.SI + a.SR + a.RC) AS beginning_stock
                    from (
                        select 
                            SUM(CASE WHEN transaction_type_id = '1' THEN im.quantity*-1 ELSE 0 END) AS `IS`,
                            SUM(CASE WHEN transaction_type_id = '2' THEN im.quantity ELSE 0 END) AS PR,
                            SUM(CASE WHEN transaction_type_id = '3' THEN im.quantity ELSE 0 END) AS PI,
                            SUM(CASE WHEN transaction_type_id = '4' THEN im.quantity*-1 ELSE 0 END) AS PT,
                            SUM(CASE WHEN transaction_type_id = '5' THEN im.quantity*-1 ELSE 0 END) AS `TO`,
                            SUM(CASE WHEN transaction_type_id = '6' THEN im.quantity ELSE 0 END) AS TI,
                            SUM(CASE WHEN transaction_type_id = '7' THEN im.quantity*-1 ELSE 0 END) AS `DO`,
                            SUM(CASE WHEN transaction_type_id = '8' THEN im.quantity*-1 ELSE 0 END) AS SI,
                            SUM(CASE WHEN transaction_type_id = '9' THEN im.quantity ELSE 0 END) AS SR,
                            SUM(CASE WHEN transaction_type_id = '10' THEN im.quantity ELSE 0 END) AS RC,
                            im.product_id,
                            im.counter_id
                        FROM inventory_movement im
                        WHERE im.status_record != 'D'
                          and DATE(im.inventory_movement_date) < DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND im.counter_id = 83 GROUP BY im.product_id, im.counter_id
                    ) a
                ) stok3 ON stok3.product_id = b.product_id AND stok3.counter_id = b.counter_id

                LEFT JOIN (
                    select 
                        a.product_id, 
                        a.counter_id,
                        (a.`IS` + a.PR + a.PI + a.PT + a.`TO` + a.TI + a.`DO` + a.SI + a.SR + a.RC) AS beginning_stock
                    from (
                        select 
                            SUM(CASE WHEN transaction_type_id = '1' THEN im.quantity*-1 ELSE 0 END) AS `IS`,
                            SUM(CASE WHEN transaction_type_id = '2' THEN im.quantity ELSE 0 END) AS PR,
                            SUM(CASE WHEN transaction_type_id = '3' THEN im.quantity ELSE 0 END) AS PI,
                            SUM(CASE WHEN transaction_type_id = '4' THEN im.quantity*-1 ELSE 0 END) AS PT,
                            SUM(CASE WHEN transaction_type_id = '5' THEN im.quantity*-1 ELSE 0 END) AS `TO`,
                            SUM(CASE WHEN transaction_type_id = '6' THEN im.quantity ELSE 0 END) AS TI,
                            SUM(CASE WHEN transaction_type_id = '7' THEN im.quantity*-1 ELSE 0 END) AS `DO`,
                            SUM(CASE WHEN transaction_type_id = '8' THEN im.quantity*-1 ELSE 0 END) AS SI,
                            SUM(CASE WHEN transaction_type_id = '9' THEN im.quantity ELSE 0 END) AS SR,
                            SUM(CASE WHEN transaction_type_id = '10' THEN im.quantity ELSE 0 END) AS RC,
                            im.product_id,
                            im.counter_id
                        FROM inventory_movement im
                        WHERE im.status_record != 'D'
                          and DATE(im.inventory_movement_date) < DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND im.counter_id = 83 GROUP BY im.product_id, im.counter_id
                    ) a
                ) stok2 ON stok2.product_id = b.product_id AND stok2.counter_id = b.counter_id
                WHERE 1=1 AND b.counter_id = 83 GROUP BY a.product_code, a.product_name, cd.status_code_name, c.name, c.counter_id,stok.beginning_stock,stok6.beginning_stock,stok5.beginning_stock,stok4.beginning_stock,stok3.beginning_stock,stok2.beginning_stock
            ) AS sub
          
[2026-04-28 17:28:47] local.INFO: parse permintaan barang []  
[2026-04-28 17:28:47] local.ERROR: fopen(/home/ptcz5662/public_html/perintis/be/public/export/Export_Permintaan_Barang_2026-04-28-17-28-47.xlsx): Failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0): fopen(/home/ptcz5662/public_html/perintis/be/public/export/Export_Permintaan_Barang_2026-04-28-17-28-47.xlsx): Failed to open stream: No such file or directory at /home/ptcz5662/public_html/perintis/be/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/BaseWriter.php:123)
[stacktrace]
#0 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RegistersExceptionHandlers.php(47): Laravel\\Lumen\\Application->handleError()
#1 [internal function]: Laravel\\Lumen\\Application->Laravel\\Lumen\\Concerns\\{closure}()
#2 /home/ptcz5662/public_html/perintis/be/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/BaseWriter.php(123): fopen()
#3 /home/ptcz5662/public_html/perintis/be/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx.php(506): PhpOffice\\PhpSpreadsheet\\Writer\\BaseWriter->openFileHandle()
#4 /home/ptcz5662/public_html/perintis/be/app/Http/Controllers/Inventory/WarehouseController.php(694): PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx->save()
#5 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/container/BoundMethod.php(36): App\\Http\\Controllers\\Inventory\\WarehouseController->permintaan_barang_export()
#6 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/container/Util.php(40): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#7 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/container/BoundMethod.php(93): Illuminate\\Container\\Util::unwrapIfClosure()
#8 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/container/BoundMethod.php(37): Illuminate\\Container\\BoundMethod::callBoundMethod()
#9 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/container/Container.php(653): Illuminate\\Container\\BoundMethod::call()
#10 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(389): Illuminate\\Container\\Container->call()
#11 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(355): Laravel\\Lumen\\Application->callControllerCallable()
#12 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(329): Laravel\\Lumen\\Application->callLumenController()
#13 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(282): Laravel\\Lumen\\Application->callControllerAction()
#14 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(267): Laravel\\Lumen\\Application->callActionOnArrayBasedRoute()
#15 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(169): Laravel\\Lumen\\Application->handleFoundRoute()
#16 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Routing/Pipeline.php(48): Laravel\\Lumen\\Application->Laravel\\Lumen\\Concerns\\{closure}()
#17 /home/ptcz5662/public_html/perintis/be/app/Http/Middleware/MeasureExecutionTime.php(14): Laravel\\Lumen\\Routing\\Pipeline->Laravel\\Lumen\\Routing\\{closure}()
#18 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/pipeline/Pipeline.php(167): App\\Http\\Middleware\\MeasureExecutionTime->handle()
#19 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Routing/Pipeline.php(30): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#20 /home/ptcz5662/public_html/perintis/be/app/Http/Middleware/RequestOrigin.php(14): Laravel\\Lumen\\Routing\\Pipeline->Laravel\\Lumen\\Routing\\{closure}()
#21 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/pipeline/Pipeline.php(167): App\\Http\\Middleware\\RequestOrigin->handle()
#22 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Routing/Pipeline.php(30): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#23 /home/ptcz5662/public_html/perintis/be/app/Http/Middleware/CorsMiddleware.php(84): Laravel\\Lumen\\Routing\\Pipeline->Laravel\\Lumen\\Routing\\{closure}()
#24 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/pipeline/Pipeline.php(167): App\\Http\\Middleware\\CorsMiddleware->handle()
#25 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Routing/Pipeline.php(30): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/pipeline/Pipeline.php(103): Laravel\\Lumen\\Routing\\Pipeline->Laravel\\Lumen\\Routing\\{closure}()
#27 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(426): Illuminate\\Pipeline\\Pipeline->then()
#28 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(175): Laravel\\Lumen\\Application->sendThroughPipeline()
#29 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(112): Laravel\\Lumen\\Application->dispatch()
#30 /home/ptcz5662/public_html/perintis/be/public/index.php(28): Laravel\\Lumen\\Application->run()
#31 {main}
"} 
[2026-04-28 17:28:47] local.INFO: Exception fopen(/home/ptcz5662/public_html/perintis/be/public/export/Export_Permintaan_Barang_2026-04-28-17-28-47.xlsx): Failed to open stream: No such file or directory  
[2026-04-28 17:28:57] local.INFO: SQL permintaan barang 
            SELECT 
                sub.kode,
                sub.item_name,
                sub.status_code_name,
                sub.is,
                sub.pr,
                sub.pi,
                sub.pt,
                sub.to,
                sub.sr,
                sub.rc,
                sub.ti,
                sub.si_do,
                sub.qtyonhand,
                sub.si_do AS sale, 
                ((sub.`is` + sub.pr + sub.pi + sub.pt + sub.`to` + sub.ti + sub.si_do + sub.sr + sub.rc) + sub.qtyonhand) AS QOH,
                sub.si_do6,
                ((sub.`is6` + sub.pr6 + sub.pi6 + sub.pt6 + sub.`to6` + sub.ti6 + sub.si_do6 + sub.sr6 + sub.rc6) + sub.qtyonhand6) AS QOH6,
                sub.si_do5,
                ((sub.`is5` + sub.pr5 + sub.pi5 + sub.pt5 + sub.`to5` + sub.ti5 + sub.si_do5 + sub.sr5 + sub.rc5) + sub.qtyonhand5) AS QOH5,
                sub.si_do4,
                ((sub.`is4` + sub.pr4 + sub.pi4 + sub.pt4 + sub.`to4` + sub.ti4 + sub.si_do4 + sub.sr4 + sub.rc4) + sub.qtyonhand4) AS QOH4,
                sub.si_do3,
                ((sub.`is3` + sub.pr3 + sub.pi3 + sub.pt3 + sub.`to3` + sub.ti3 + sub.si_do3 + sub.sr3 + sub.rc3) + sub.qtyonhand3) AS QOH3,
                sub.si_do2,
                ((sub.`is2` + sub.pr2 + sub.pi2 + sub.pt2 + sub.`to2` + sub.ti2 + sub.si_do2 + sub.sr2 + sub.rc2) + sub.qtyonhand2) AS QOH2,
                CEIL(DATEDIFF(CURDATE(), sub.inventory_movement_date)) AS doi,
                sub.countername,
                sub.counter_id
            FROM (
                SELECT
                    a.product_code AS kode,
                    a.product_name AS item_name,
                    cd.status_code_name AS status_code_name,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '10' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity ELSE 0 END) AS rc,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '1' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `is`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '2' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity ELSE 0 END) AS  pr,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '3' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity ELSE 0 END) AS pi,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '4' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS pt,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '5' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `to`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '6' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity ELSE 0 END) AS ti,
                    SUM(CASE 
                        WHEN b.transaction_type_id IN (8,7)
                            AND b.inventory_movement_date  BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH))
                        THEN b.quantity*-1 ELSE 0 END) AS si_do,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '9' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01','%Y-%m-%d'), INTERVAL 1 MONTH)))
                        THEN b.quantity ELSE 0 END) AS sr,
                    COALESCE(stok.beginning_stock, 0) AS qtyonhand,

                    SUM(CASE 
                        WHEN b.transaction_type_id = '10' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity ELSE 0 END) AS rc6,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '1' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `is6`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '2' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity ELSE 0 END) AS  pr6,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '3' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity ELSE 0 END) AS pi6,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '4' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS pt6,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '5' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `to6`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '6' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity ELSE 0 END) AS ti6,
                    SUM(CASE 
                        WHEN b.transaction_type_id IN (8,7)
                            AND b.inventory_movement_date  BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH))
                        THEN b.quantity*-1 ELSE 0 END) AS si_do6,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '9' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH)))
                        THEN b.quantity ELSE 0 END) AS sr6,
                    COALESCE(stok6.beginning_stock, 0) AS qtyonhand6,

                    SUM(CASE 
                        WHEN b.transaction_type_id = '10' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity ELSE 0 END) AS rc5,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '1' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `is5`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '2' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity ELSE 0 END) AS  pr5,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '3' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity ELSE 0 END) AS pi5,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '4' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS pt5,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '5' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `to5`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '6' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity ELSE 0 END) AS ti5,
                    SUM(CASE 
                        WHEN b.transaction_type_id IN (8,7)
                            AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS si_do5,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '9' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH)))
                        THEN b.quantity ELSE 0 END) AS sr5,
                    COALESCE(stok5.beginning_stock, 0) AS qtyonhand5,

                    SUM(CASE 
                        WHEN b.transaction_type_id = '10' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity ELSE 0 END) AS rc4,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '1' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `is4`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '2' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity ELSE 0 END) AS  pr4,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '3' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity ELSE 0 END) AS pi4,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '4' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS pt4,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '5' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `to4`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '6' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity ELSE 0 END) AS ti4,
                    SUM(CASE 
                        WHEN b.transaction_type_id IN (8,7)
                            AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS si_do4,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '9' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH)))
                        THEN b.quantity ELSE 0 END) AS sr4,
                    COALESCE(stok4.beginning_stock, 0) AS qtyonhand4,

                    SUM(CASE 
                        WHEN b.transaction_type_id = '10' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity ELSE 0 END) AS rc3,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '1' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `is3`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '2' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity ELSE 0 END) AS  pr3,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '3' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity ELSE 0 END) AS pi3,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '4' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS pt3,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '5' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `to3`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '6' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity ELSE 0 END) AS ti3,
                    SUM(CASE 
                        WHEN b.transaction_type_id IN (8,7)
                            AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS si_do3,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '9' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH)))
                        THEN b.quantity ELSE 0 END) AS sr3,
                    COALESCE(stok3.beginning_stock, 0) AS qtyonhand3,

                    SUM(CASE 
                        WHEN b.transaction_type_id = '10' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity ELSE 0 END) AS rc2,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '1' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `is2`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '2' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity ELSE 0 END) AS  pr2,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '3' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity ELSE 0 END) AS pi2,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '4' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS pt2,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '5' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS `to2`,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '6' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity ELSE 0 END) AS ti2,
                    SUM(CASE 
                        WHEN b.transaction_type_id IN (8,7)
                            AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity*-1 ELSE 0 END) AS si_do2,
                    SUM(CASE 
                        WHEN b.transaction_type_id = '9' 
                             AND (DATE(b.inventory_movement_date) BETWEEN DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH)))
                        THEN b.quantity ELSE 0 END) AS sr2,
                    COALESCE(stok2.beginning_stock, 0) AS qtyonhand2,

                 c.name as countername,
                 c.counter_id,
                    MAX(b.inventory_movement_date) AS inventory_movement_date
                FROM product a
                LEFT JOIN status_code cd ON cd.status_code_id = a.status_code_id
                LEFT JOIN inventory_movement b ON a.product_id = b.product_id AND b.warehouse_id = 4 
                LEFT JOIN counter c on c.counter_id = b.counter_id
                LEFT JOIN (
                    select 
                        a.product_id,
                        a.counter_id, 
                        (a.`IS` + a.PR + a.PI + a.PT + a.`TO` + a.TI + a.`DO` + a.SI + a.SR + a.RC) AS beginning_stock
                    from (
                        select 
                            SUM(CASE WHEN transaction_type_id = '1' THEN im.quantity*-1 ELSE 0 END) AS `IS`,
                            SUM(CASE WHEN transaction_type_id = '2' THEN im.quantity ELSE 0 END) AS PR,
                            SUM(CASE WHEN transaction_type_id = '3' THEN im.quantity ELSE 0 END) AS PI,
                            SUM(CASE WHEN transaction_type_id = '4' THEN im.quantity*-1 ELSE 0 END) AS PT,
                            SUM(CASE WHEN transaction_type_id = '5' THEN im.quantity*-1 ELSE 0 END) AS `TO`,
                            SUM(CASE WHEN transaction_type_id = '6' THEN im.quantity ELSE 0 END) AS TI,
                            SUM(CASE WHEN transaction_type_id = '7' THEN im.quantity*-1 ELSE 0 END) AS `DO`,
                            SUM(CASE WHEN transaction_type_id = '8' THEN im.quantity*-1 ELSE 0 END) AS SI,
                            SUM(CASE WHEN transaction_type_id = '9' THEN im.quantity ELSE 0 END) AS SR,
                            SUM(CASE WHEN transaction_type_id = '10' THEN im.quantity ELSE 0 END) AS RC,
                            im.product_id,
                            im.counter_id
                        FROM inventory_movement im
                        WHERE im.status_record != 'D'
                          and DATE(im.inventory_movement_date) < DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 1 MONTH), '%Y-%m-01') AND im.warehouse_id = 4 GROUP BY im.product_id, im.counter_id 
                    ) a
                ) stok ON stok.product_id = b.product_id AND stok.counter_id = b.counter_id
                LEFT JOIN (
                    select 
                        a.product_id, 
                        a.counter_id,
                        (a.`IS` + a.PR + a.PI + a.PT + a.`TO` + a.TI + a.`DO` + a.SI + a.SR + a.RC) AS beginning_stock
                    from (
                        select 
                            SUM(CASE WHEN transaction_type_id = '1' THEN im.quantity*-1 ELSE 0 END) AS `IS`,
                            SUM(CASE WHEN transaction_type_id = '2' THEN im.quantity ELSE 0 END) AS PR,
                            SUM(CASE WHEN transaction_type_id = '3' THEN im.quantity ELSE 0 END) AS PI,
                            SUM(CASE WHEN transaction_type_id = '4' THEN im.quantity*-1 ELSE 0 END) AS PT,
                            SUM(CASE WHEN transaction_type_id = '5' THEN im.quantity*-1 ELSE 0 END) AS `TO`,
                            SUM(CASE WHEN transaction_type_id = '6' THEN im.quantity ELSE 0 END) AS TI,
                            SUM(CASE WHEN transaction_type_id = '7' THEN im.quantity*-1 ELSE 0 END) AS `DO`,
                            SUM(CASE WHEN transaction_type_id = '8' THEN im.quantity*-1 ELSE 0 END) AS SI,
                            SUM(CASE WHEN transaction_type_id = '9' THEN im.quantity ELSE 0 END) AS SR,
                            SUM(CASE WHEN transaction_type_id = '10' THEN im.quantity ELSE 0 END) AS RC,
                            im.product_id,
                            im.counter_id
                        FROM inventory_movement im
                        WHERE im.status_record != 'D'
                          and DATE(im.inventory_movement_date) < DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 6 MONTH), '%Y-%m-01') AND im.warehouse_id = 4 GROUP BY im.product_id, im.counter_id
                    ) a
                ) stok6 ON stok6.product_id = b.product_id AND stok6.counter_id = b.counter_id 

                LEFT JOIN (
                    select 
                        a.product_id, 
                        a.counter_id,
                        (a.`IS` + a.PR + a.PI + a.PT + a.`TO` + a.TI + a.`DO` + a.SI + a.SR + a.RC) AS beginning_stock
                    from (
                        select 
                            SUM(CASE WHEN transaction_type_id = '1' THEN im.quantity*-1 ELSE 0 END) AS `IS`,
                            SUM(CASE WHEN transaction_type_id = '2' THEN im.quantity ELSE 0 END) AS PR,
                            SUM(CASE WHEN transaction_type_id = '3' THEN im.quantity ELSE 0 END) AS PI,
                            SUM(CASE WHEN transaction_type_id = '4' THEN im.quantity*-1 ELSE 0 END) AS PT,
                            SUM(CASE WHEN transaction_type_id = '5' THEN im.quantity*-1 ELSE 0 END) AS `TO`,
                            SUM(CASE WHEN transaction_type_id = '6' THEN im.quantity ELSE 0 END) AS TI,
                            SUM(CASE WHEN transaction_type_id = '7' THEN im.quantity*-1 ELSE 0 END) AS `DO`,
                            SUM(CASE WHEN transaction_type_id = '8' THEN im.quantity*-1 ELSE 0 END) AS SI,
                            SUM(CASE WHEN transaction_type_id = '9' THEN im.quantity ELSE 0 END) AS SR,
                            SUM(CASE WHEN transaction_type_id = '10' THEN im.quantity ELSE 0 END) AS RC,
                            im.product_id,
                            im.counter_id
                        FROM inventory_movement im
                        WHERE im.status_record != 'D'
                          and DATE(im.inventory_movement_date) < DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 5 MONTH), '%Y-%m-01') AND im.warehouse_id = 4 GROUP BY im.product_id, im.counter_id
                    ) a
                ) stok5 ON stok5.product_id = b.product_id AND stok5.counter_id = b.counter_id

                LEFT JOIN (
                    select 
                        a.product_id, 
                        a.counter_id,
                        (a.`IS` + a.PR + a.PI + a.PT + a.`TO` + a.TI + a.`DO` + a.SI + a.SR + a.RC) AS beginning_stock
                    from (
                        select 
                            SUM(CASE WHEN transaction_type_id = '1' THEN im.quantity*-1 ELSE 0 END) AS `IS`,
                            SUM(CASE WHEN transaction_type_id = '2' THEN im.quantity ELSE 0 END) AS PR,
                            SUM(CASE WHEN transaction_type_id = '3' THEN im.quantity ELSE 0 END) AS PI,
                            SUM(CASE WHEN transaction_type_id = '4' THEN im.quantity*-1 ELSE 0 END) AS PT,
                            SUM(CASE WHEN transaction_type_id = '5' THEN im.quantity*-1 ELSE 0 END) AS `TO`,
                            SUM(CASE WHEN transaction_type_id = '6' THEN im.quantity ELSE 0 END) AS TI,
                            SUM(CASE WHEN transaction_type_id = '7' THEN im.quantity*-1 ELSE 0 END) AS `DO`,
                            SUM(CASE WHEN transaction_type_id = '8' THEN im.quantity*-1 ELSE 0 END) AS SI,
                            SUM(CASE WHEN transaction_type_id = '9' THEN im.quantity ELSE 0 END) AS SR,
                            SUM(CASE WHEN transaction_type_id = '10' THEN im.quantity ELSE 0 END) AS RC,
                            im.product_id,
                            im.counter_id
                        FROM inventory_movement im
                        WHERE im.status_record != 'D'
                          and DATE(im.inventory_movement_date) < DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 4 MONTH), '%Y-%m-01') AND im.warehouse_id = 4 GROUP BY im.product_id, im.counter_id
                    ) a
                ) stok4 ON stok4.product_id = b.product_id AND stok4.counter_id = b.counter_id

                LEFT JOIN (
                    select 
                        a.product_id, 
                        a.counter_id,
                        (a.`IS` + a.PR + a.PI + a.PT + a.`TO` + a.TI + a.`DO` + a.SI + a.SR + a.RC) AS beginning_stock
                    from (
                        select 
                            SUM(CASE WHEN transaction_type_id = '1' THEN im.quantity*-1 ELSE 0 END) AS `IS`,
                            SUM(CASE WHEN transaction_type_id = '2' THEN im.quantity ELSE 0 END) AS PR,
                            SUM(CASE WHEN transaction_type_id = '3' THEN im.quantity ELSE 0 END) AS PI,
                            SUM(CASE WHEN transaction_type_id = '4' THEN im.quantity*-1 ELSE 0 END) AS PT,
                            SUM(CASE WHEN transaction_type_id = '5' THEN im.quantity*-1 ELSE 0 END) AS `TO`,
                            SUM(CASE WHEN transaction_type_id = '6' THEN im.quantity ELSE 0 END) AS TI,
                            SUM(CASE WHEN transaction_type_id = '7' THEN im.quantity*-1 ELSE 0 END) AS `DO`,
                            SUM(CASE WHEN transaction_type_id = '8' THEN im.quantity*-1 ELSE 0 END) AS SI,
                            SUM(CASE WHEN transaction_type_id = '9' THEN im.quantity ELSE 0 END) AS SR,
                            SUM(CASE WHEN transaction_type_id = '10' THEN im.quantity ELSE 0 END) AS RC,
                            im.product_id,
                            im.counter_id
                        FROM inventory_movement im
                        WHERE im.status_record != 'D'
                          and DATE(im.inventory_movement_date) < DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 3 MONTH), '%Y-%m-01') AND im.warehouse_id = 4 GROUP BY im.product_id, im.counter_id
                    ) a
                ) stok3 ON stok3.product_id = b.product_id AND stok3.counter_id = b.counter_id

                LEFT JOIN (
                    select 
                        a.product_id, 
                        a.counter_id,
                        (a.`IS` + a.PR + a.PI + a.PT + a.`TO` + a.TI + a.`DO` + a.SI + a.SR + a.RC) AS beginning_stock
                    from (
                        select 
                            SUM(CASE WHEN transaction_type_id = '1' THEN im.quantity*-1 ELSE 0 END) AS `IS`,
                            SUM(CASE WHEN transaction_type_id = '2' THEN im.quantity ELSE 0 END) AS PR,
                            SUM(CASE WHEN transaction_type_id = '3' THEN im.quantity ELSE 0 END) AS PI,
                            SUM(CASE WHEN transaction_type_id = '4' THEN im.quantity*-1 ELSE 0 END) AS PT,
                            SUM(CASE WHEN transaction_type_id = '5' THEN im.quantity*-1 ELSE 0 END) AS `TO`,
                            SUM(CASE WHEN transaction_type_id = '6' THEN im.quantity ELSE 0 END) AS TI,
                            SUM(CASE WHEN transaction_type_id = '7' THEN im.quantity*-1 ELSE 0 END) AS `DO`,
                            SUM(CASE WHEN transaction_type_id = '8' THEN im.quantity*-1 ELSE 0 END) AS SI,
                            SUM(CASE WHEN transaction_type_id = '9' THEN im.quantity ELSE 0 END) AS SR,
                            SUM(CASE WHEN transaction_type_id = '10' THEN im.quantity ELSE 0 END) AS RC,
                            im.product_id,
                            im.counter_id
                        FROM inventory_movement im
                        WHERE im.status_record != 'D'
                          and DATE(im.inventory_movement_date) < DATE_FORMAT(DATE_SUB(STR_TO_DATE('2025-05-01', '%Y-%m-%d'), INTERVAL 2 MONTH), '%Y-%m-01') AND im.warehouse_id = 4 GROUP BY im.product_id, im.counter_id
                    ) a
                ) stok2 ON stok2.product_id = b.product_id AND stok2.counter_id = b.counter_id
                WHERE 1=1 AND b.warehouse_id = 4 GROUP BY a.product_code, a.product_name, cd.status_code_name, c.name, c.counter_id,stok.beginning_stock,stok6.beginning_stock,stok5.beginning_stock,stok4.beginning_stock,stok3.beginning_stock,stok2.beginning_stock
            ) AS sub
          
[2026-04-28 17:28:57] local.INFO: parse permintaan barang []  
[2026-04-28 17:29:09] local.ERROR: fopen(/home/ptcz5662/public_html/perintis/be/public/export/Export_Permintaan_Barang_2026-04-28-17-28-57.xlsx): Failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0): fopen(/home/ptcz5662/public_html/perintis/be/public/export/Export_Permintaan_Barang_2026-04-28-17-28-57.xlsx): Failed to open stream: No such file or directory at /home/ptcz5662/public_html/perintis/be/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/BaseWriter.php:123)
[stacktrace]
#0 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RegistersExceptionHandlers.php(47): Laravel\\Lumen\\Application->handleError()
#1 [internal function]: Laravel\\Lumen\\Application->Laravel\\Lumen\\Concerns\\{closure}()
#2 /home/ptcz5662/public_html/perintis/be/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/BaseWriter.php(123): fopen()
#3 /home/ptcz5662/public_html/perintis/be/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx.php(506): PhpOffice\\PhpSpreadsheet\\Writer\\BaseWriter->openFileHandle()
#4 /home/ptcz5662/public_html/perintis/be/app/Http/Controllers/Inventory/WarehouseController.php(694): PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx->save()
#5 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/container/BoundMethod.php(36): App\\Http\\Controllers\\Inventory\\WarehouseController->permintaan_barang_export()
#6 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/container/Util.php(40): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#7 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/container/BoundMethod.php(93): Illuminate\\Container\\Util::unwrapIfClosure()
#8 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/container/BoundMethod.php(37): Illuminate\\Container\\BoundMethod::callBoundMethod()
#9 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/container/Container.php(653): Illuminate\\Container\\BoundMethod::call()
#10 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(389): Illuminate\\Container\\Container->call()
#11 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(355): Laravel\\Lumen\\Application->callControllerCallable()
#12 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(329): Laravel\\Lumen\\Application->callLumenController()
#13 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(282): Laravel\\Lumen\\Application->callControllerAction()
#14 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(267): Laravel\\Lumen\\Application->callActionOnArrayBasedRoute()
#15 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(169): Laravel\\Lumen\\Application->handleFoundRoute()
#16 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Routing/Pipeline.php(48): Laravel\\Lumen\\Application->Laravel\\Lumen\\Concerns\\{closure}()
#17 /home/ptcz5662/public_html/perintis/be/app/Http/Middleware/MeasureExecutionTime.php(14): Laravel\\Lumen\\Routing\\Pipeline->Laravel\\Lumen\\Routing\\{closure}()
#18 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/pipeline/Pipeline.php(167): App\\Http\\Middleware\\MeasureExecutionTime->handle()
#19 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Routing/Pipeline.php(30): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#20 /home/ptcz5662/public_html/perintis/be/app/Http/Middleware/RequestOrigin.php(14): Laravel\\Lumen\\Routing\\Pipeline->Laravel\\Lumen\\Routing\\{closure}()
#21 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/pipeline/Pipeline.php(167): App\\Http\\Middleware\\RequestOrigin->handle()
#22 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Routing/Pipeline.php(30): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#23 /home/ptcz5662/public_html/perintis/be/app/Http/Middleware/CorsMiddleware.php(84): Laravel\\Lumen\\Routing\\Pipeline->Laravel\\Lumen\\Routing\\{closure}()
#24 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/pipeline/Pipeline.php(167): App\\Http\\Middleware\\CorsMiddleware->handle()
#25 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Routing/Pipeline.php(30): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /home/ptcz5662/public_html/perintis/be/vendor/illuminate/pipeline/Pipeline.php(103): Laravel\\Lumen\\Routing\\Pipeline->Laravel\\Lumen\\Routing\\{closure}()
#27 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(426): Illuminate\\Pipeline\\Pipeline->then()
#28 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(175): Laravel\\Lumen\\Application->sendThroughPipeline()
#29 /home/ptcz5662/public_html/perintis/be/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(112): Laravel\\Lumen\\Application->dispatch()
#30 /home/ptcz5662/public_html/perintis/be/public/index.php(28): Laravel\\Lumen\\Application->run()
#31 {main}
"} 
[2026-04-28 17:29:09] local.INFO: Exception fopen(/home/ptcz5662/public_html/perintis/be/public/export/Export_Permintaan_Barang_2026-04-28-17-28-57.xlsx): Failed to open stream: No such file or directory  
