feat: 맞춤 집계표 — 기간·품목구분·컬럼 선택 + 제목·계정별 프리셋 저장/인쇄
- 한 화면에서 기간·품목구분(봉투/음식물/폐기물)·집계방식·표시컬럼 선택, 제목 지정 후 조회/인쇄 - 컬럼 13종 선택, 상세/품목별 집계 지원, 실판매(bag_sale) 기준 - 계정별(mb_idx) 프리셋 저장/불러오기/삭제 (report_preset 테이블) - report_preset 테이블 없으면 프리셋만 비활성, 리포트는 정상 동작 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
21
writable/database/menu_add_custom_report.sql
Normal file
21
writable/database/menu_add_custom_report.sql
Normal file
@@ -0,0 +1,21 @@
|
||||
-- 판매 현황 카테고리에 '맞춤 집계표' 소메뉴 추가 (사이트 메뉴)
|
||||
-- 실행: mysql -u jongryangje -p jongryangje_dev < writable/database/menu_add_custom_report.sql
|
||||
-- 멱등: 이미 있으면 건너뜀.
|
||||
|
||||
SET @mt_site := (SELECT mt_idx FROM menu_type WHERE mt_code = 'site' LIMIT 1);
|
||||
SET @parent_sales := (
|
||||
SELECT mm_idx FROM menu
|
||||
WHERE mt_idx = @mt_site AND lg_idx = 1 AND mm_pidx = 0 AND mm_name = '판매 현황'
|
||||
LIMIT 1
|
||||
);
|
||||
SET @next_num := (
|
||||
SELECT IFNULL(MAX(mm_num), -1) + 1 FROM menu WHERE mt_idx = @mt_site AND lg_idx = 1 AND mm_pidx = @parent_sales
|
||||
);
|
||||
|
||||
INSERT INTO menu (mt_idx, lg_idx, mm_name, mm_link, mm_pidx, mm_dep, mm_num, mm_cnode, mm_level, mm_is_view)
|
||||
SELECT @mt_site, 1, '맞춤 집계표', 'bag/reports/custom', @parent_sales, 1, @next_num, 0, '', 'Y'
|
||||
WHERE @parent_sales IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM menu m
|
||||
WHERE m.mt_idx = @mt_site AND m.lg_idx = 1 AND m.mm_pidx = @parent_sales AND m.mm_name = '맞춤 집계표'
|
||||
);
|
||||
18
writable/database/report_preset_table.sql
Normal file
18
writable/database/report_preset_table.sql
Normal file
@@ -0,0 +1,18 @@
|
||||
-- 맞춤 집계표: 계정별 리포트 프리셋(제목·품목구분·컬럼구성) 저장
|
||||
-- 실행: mysql -u jongryangje -p jongryangje_dev < writable/database/report_preset_table.sql
|
||||
-- 멱등(IF NOT EXISTS).
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `report_preset` (
|
||||
`rp_idx` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`rp_lg_idx` INT UNSIGNED NOT NULL COMMENT '지자체',
|
||||
`rp_mb_idx` INT UNSIGNED NOT NULL COMMENT '소유 계정(mb_idx) — 계정별 저장',
|
||||
`rp_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '프리셋 이름',
|
||||
`rp_title` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '리포트(표) 제목',
|
||||
`rp_category` VARCHAR(20) NOT NULL DEFAULT 'all' COMMENT 'all|envelope|food|waste',
|
||||
`rp_mode` VARCHAR(10) NOT NULL DEFAULT 'detail' COMMENT 'detail|summary',
|
||||
`rp_columns` TEXT NULL COMMENT '선택 컬럼 키 JSON 배열',
|
||||
`rp_regdate` DATETIME NULL,
|
||||
`rp_updated` DATETIME NULL,
|
||||
PRIMARY KEY (`rp_idx`),
|
||||
KEY `idx_rp_owner` (`rp_lg_idx`, `rp_mb_idx`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
Reference in New Issue
Block a user