feat(purchase): 구매 취소/반품 + 입고일 기준 월별 분석
- 상태 추가: cancelled(구매취소), returned(반품) - API: PUT /:id/cancel, /:id/return, /:id/revert-cancel - 데스크탑: 구매완료→취소 버튼, 입고완료→반품 버튼, 취소→되돌리기 - 분석 페이지: 구매일/입고일 기준 전환 토글, 입고일 기준 월간 분류 집계 + 입고 목록 - Settlement API: GET /received-summary, /received-list (입고일 기준) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -25,6 +25,9 @@ router.post('/', ctrl.create);
|
||||
router.put('/:id/hold', requirePage('factory_purchases'), ctrl.hold);
|
||||
router.put('/:id/revert', requirePage('factory_purchases'), ctrl.revert);
|
||||
router.put('/:id/receive', requirePage('factory_purchases'), ctrl.receive);
|
||||
router.put('/:id/cancel', requirePage('factory_purchases'), ctrl.cancel);
|
||||
router.put('/:id/return', requirePage('factory_purchases'), ctrl.returnItem);
|
||||
router.put('/:id/revert-cancel', requirePage('factory_purchases'), ctrl.revertCancel);
|
||||
router.delete('/:id', ctrl.delete);
|
||||
|
||||
module.exports = router;
|
||||
|
||||
@@ -8,6 +8,8 @@ const requirePage = createRequirePage(getDb);
|
||||
router.get('/summary', ctrl.getMonthlySummary);
|
||||
router.get('/purchases', ctrl.getMonthlyPurchases);
|
||||
router.get('/price-changes', ctrl.getPriceChanges);
|
||||
router.get('/received-summary', ctrl.getMonthlyReceivedSummary);
|
||||
router.get('/received-list', ctrl.getMonthlyReceivedList);
|
||||
router.post('/complete', requirePage('factory_settlements'), ctrl.complete);
|
||||
router.post('/cancel', requirePage('factory_settlements'), ctrl.cancel);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user