fragment( """ ( SELECT -- Balance COALESCE(SUM(items_log.qty) FILTER (WHERE items_log.date < ?), 0) AS open_bal, SUM(items_log.qty) AS close_bal, -- Qty In/Out COALESCE(SUM(items_log.qty) FILTER (WHERE items_log.qty > 0 AND items_log.date BETWEEN ? AND ?), 0) AS qty_in, COALESCE(SUM(-items_log.qty) FILTER (WHERE items_log.qty < 0 AND items_log.date BETWEEN ? AND ?), 0) AS qty_out, -- Item ID item_id FROM ( SELECT inventory_item_id AS item_id, qty AS qty, purchase_date AS date FROM institution_inventory_items_in UNION SELECT inventory_item_id AS item_id, -qty AS qty, inserted_at AS date FROM institution_inventory_items_out ) items_log GROUP BY items_log.item_id ) """, unquote(open_date), unquote(open_date), unquote(close_date), unquote(open_date), unquote(close_date))
fragment( """ ( SELECT -- Balance COALESCE(SUM(items_log.qty) FILTER (WHERE items_log.date < ?{open_date}), 0) AS open_bal, SUM(items_log.qty) AS close_bal, -- Qty In/Out COALESCE(SUM(items_log.qty) FILTER (WHERE items_log.qty > 0 AND items_log.date BETWEEN ?{open_date} AND ?{close_date}), 0) AS qty_in, COALESCE(SUM(-items_log.qty) FILTER (WHERE items_log.qty < 0 AND items_log.date BETWEEN ?{open_date} AND ?{close_date}), 0) AS qty_out, -- Item ID item_id FROM ( SELECT inventory_item_id AS item_id, qty AS qty, purchase_date AS date FROM institution_inventory_items_in UNION SELECT inventory_item_id AS item_id, -qty AS qty, inserted_at AS date FROM institution_inventory_items_out ) items_log GROUP BY items_log.item_id ) """, open_date: ^open_date, close_date: ^close_date)