Phase 4 주문접수/판매/반품/불출 관리 구현
- DB: shop_order, shop_order_item, bag_sale, bag_issue 테이블 - 주문접수: 지정판매소 선택, 품목별 수량, 소비자가 연동, 포장단위 환산 - 접수/취소, 배달일 기간 필터 - 판매/반품: 지정판매소별 봉투 판매+반품, 재고 자동 감산/가산 - 무료용 불출: 연도/분기/불출처/봉투코드, 재고 감산, 취소 시 복원 - E2E 테스트 7개 전체 통과 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
81
writable/database/sales_tables.sql
Normal file
81
writable/database/sales_tables.sql
Normal file
@@ -0,0 +1,81 @@
|
||||
-- ============================================
|
||||
-- 주문/판매/불출 관리 테이블 (Phase 4)
|
||||
-- ============================================
|
||||
|
||||
-- 주문 접수 (P4-01~03)
|
||||
CREATE TABLE IF NOT EXISTS `shop_order` (
|
||||
`so_idx` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`so_lg_idx` INT UNSIGNED NOT NULL,
|
||||
`so_ds_idx` INT UNSIGNED NULL COMMENT '지정판매소 FK',
|
||||
`so_ds_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '판매소명(스냅샷)',
|
||||
`so_order_date` DATE NOT NULL COMMENT '접수일',
|
||||
`so_delivery_date` DATE NULL COMMENT '배달일',
|
||||
`so_payment_type` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '이체/가상계좌',
|
||||
`so_paid` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '입금여부 1=예',
|
||||
`so_received` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '수령여부 1=예',
|
||||
`so_total_qty` INT UNSIGNED NOT NULL DEFAULT 0,
|
||||
`so_total_amount` DECIMAL(14,2) NOT NULL DEFAULT 0,
|
||||
`so_status` VARCHAR(10) NOT NULL DEFAULT 'normal' COMMENT 'normal/cancelled',
|
||||
`so_orderer_idx` INT UNSIGNED NULL,
|
||||
`so_regdate` DATETIME NOT NULL,
|
||||
PRIMARY KEY (`so_idx`),
|
||||
KEY `idx_so_lg_idx` (`so_lg_idx`),
|
||||
KEY `idx_so_ds_idx` (`so_ds_idx`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='주문 접수';
|
||||
|
||||
-- 주문 상세
|
||||
CREATE TABLE IF NOT EXISTS `shop_order_item` (
|
||||
`soi_idx` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`soi_so_idx` INT UNSIGNED NOT NULL,
|
||||
`soi_bag_code` VARCHAR(50) NOT NULL,
|
||||
`soi_bag_name` VARCHAR(100) NOT NULL DEFAULT '',
|
||||
`soi_unit_price` DECIMAL(12,2) NOT NULL DEFAULT 0,
|
||||
`soi_qty` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '접수량(낱장)',
|
||||
`soi_amount` DECIMAL(14,2) NOT NULL DEFAULT 0,
|
||||
`soi_box_count` INT UNSIGNED NOT NULL DEFAULT 0,
|
||||
`soi_pack_count` INT UNSIGNED NOT NULL DEFAULT 0,
|
||||
`soi_sheet_count` INT UNSIGNED NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`soi_idx`),
|
||||
KEY `idx_soi_so_idx` (`soi_so_idx`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='주문 상세';
|
||||
|
||||
-- 판매 (P4-04~07)
|
||||
CREATE TABLE IF NOT EXISTS `bag_sale` (
|
||||
`bs_idx` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`bs_lg_idx` INT UNSIGNED NOT NULL,
|
||||
`bs_so_idx` INT UNSIGNED NULL COMMENT '주문 FK (NULL=직접판매)',
|
||||
`bs_ds_idx` INT UNSIGNED NULL COMMENT '지정판매소 FK',
|
||||
`bs_ds_name` VARCHAR(100) NOT NULL DEFAULT '',
|
||||
`bs_sale_date` DATE NOT NULL,
|
||||
`bs_bag_code` VARCHAR(50) NOT NULL,
|
||||
`bs_bag_name` VARCHAR(100) NOT NULL DEFAULT '',
|
||||
`bs_qty` INT NOT NULL DEFAULT 0 COMMENT '판매수량(낱장, 음수=반품)',
|
||||
`bs_unit_price` DECIMAL(12,2) NOT NULL DEFAULT 0,
|
||||
`bs_amount` DECIMAL(14,2) NOT NULL DEFAULT 0,
|
||||
`bs_type` VARCHAR(20) NOT NULL DEFAULT 'sale' COMMENT 'sale/return/cancel',
|
||||
`bs_regdate` DATETIME NOT NULL,
|
||||
PRIMARY KEY (`bs_idx`),
|
||||
KEY `idx_bs_lg_idx` (`bs_lg_idx`),
|
||||
KEY `idx_bs_ds_idx` (`bs_ds_idx`),
|
||||
KEY `idx_bs_sale_date` (`bs_sale_date`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='판매/반품';
|
||||
|
||||
-- 불출 (P4-08~10)
|
||||
CREATE TABLE IF NOT EXISTS `bag_issue` (
|
||||
`bi2_idx` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`bi2_lg_idx` INT UNSIGNED NOT NULL,
|
||||
`bi2_year` YEAR NOT NULL,
|
||||
`bi2_quarter` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '분기(1~4)',
|
||||
`bi2_issue_type` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '무료용/공공용',
|
||||
`bi2_issue_date` DATE NOT NULL,
|
||||
`bi2_dest_type` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '불출처 구분(동사무소 등)',
|
||||
`bi2_dest_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '불출처명',
|
||||
`bi2_bag_code` VARCHAR(50) NOT NULL,
|
||||
`bi2_bag_name` VARCHAR(100) NOT NULL DEFAULT '',
|
||||
`bi2_qty` INT NOT NULL DEFAULT 0 COMMENT '불출수량(낱장, 음수=취소)',
|
||||
`bi2_status` VARCHAR(10) NOT NULL DEFAULT 'normal' COMMENT 'normal/cancelled',
|
||||
`bi2_regdate` DATETIME NOT NULL,
|
||||
PRIMARY KEY (`bi2_idx`),
|
||||
KEY `idx_bi2_lg_idx` (`bi2_lg_idx`),
|
||||
KEY `idx_bi2_date` (`bi2_issue_date`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='무료용 불출';
|
||||
Reference in New Issue
Block a user