번호 자동 부여 대응 및 API 공통 처리 보강
This commit is contained in:
@@ -414,7 +414,6 @@
|
||||
`POST /stock-transactions`
|
||||
```json
|
||||
{
|
||||
"transaction_no": "TXN-2025-0001",
|
||||
"transaction_type_id": 1,
|
||||
"transaction_status_id": 1,
|
||||
"warehouse_id": 1,
|
||||
@@ -437,13 +436,14 @@
|
||||
],
|
||||
"customers": [],
|
||||
"approval": {
|
||||
"approval_no": "APP-2025-0001",
|
||||
"requested_by_id": 7,
|
||||
"note": "입고 결재"
|
||||
}
|
||||
}
|
||||
```
|
||||
응답은 생성된 트랜잭션 전체 정보를 반환하며, 라인·고객 식별자가 포함된다. `approval`
|
||||
응답은 생성된 트랜잭션 전체 정보를 반환하며, 라인·고객 식별자가 포함된다. `transaction_no`
|
||||
및 `approval.approval_no`는 요청 시 생략하며, 서버가 각각 `TRX-YYYYMMDDNNNN`,
|
||||
`APP-YYYYMMDDNNNN` 패턴으로 생성한 값을 응답에서 확인한다. `approval`
|
||||
블록은 결재 생성에 필요한 정보를 담으며 생략할 수 없다.
|
||||
|
||||
### 4.2 목록 조회
|
||||
@@ -455,7 +455,7 @@
|
||||
"items": [
|
||||
{
|
||||
"id": 9001,
|
||||
"transaction_no": "TXN-2025-0001",
|
||||
"transaction_no": "TRX-202511100001",
|
||||
"transaction_type": {
|
||||
"id": 1,
|
||||
"name": "입고"
|
||||
@@ -519,7 +519,7 @@
|
||||
],
|
||||
"approval": {
|
||||
"id": 5001,
|
||||
"approval_no": "APP-2025-0001",
|
||||
"approval_no": "APP-202511100001",
|
||||
"status": {
|
||||
"id": 1,
|
||||
"name": "대기",
|
||||
@@ -571,7 +571,7 @@
|
||||
{
|
||||
"data": {
|
||||
"id": 9001,
|
||||
"transaction_no": "TXN-2025-0001",
|
||||
"transaction_no": "TRX-202511100001",
|
||||
"transaction_type": {
|
||||
"id": 1,
|
||||
"name": "입고"
|
||||
@@ -636,7 +636,7 @@
|
||||
],
|
||||
"approval": {
|
||||
"id": 5001,
|
||||
"approval_no": "APP-2025-0001",
|
||||
"approval_no": "APP-202511100001",
|
||||
"status": {
|
||||
"id": 1,
|
||||
"name": "대기",
|
||||
@@ -861,7 +861,6 @@
|
||||
```json
|
||||
{
|
||||
"transaction_id": 9001,
|
||||
"approval_no": "APP-2025-0001",
|
||||
"approval_status_id": 1,
|
||||
"requested_by_id": 7,
|
||||
"note": "입고 결재"
|
||||
@@ -873,7 +872,7 @@
|
||||
"data": {
|
||||
"approval": {
|
||||
"id": 5001,
|
||||
"approval_no": "APP-2025-0001",
|
||||
"approval_no": "APP-202511100001",
|
||||
"status": {
|
||||
"id": 1,
|
||||
"name": "대기",
|
||||
@@ -896,7 +895,7 @@
|
||||
}
|
||||
}
|
||||
```
|
||||
- `approval_no`는 활성 결재 기준으로 중복 불가하며(409 Conflict), 길이는 1~30자다.
|
||||
- `approval_no`는 서버가 자동 발급하는 읽기 전용 필드로 `APP-YYYYMMDDNNNN` 형식을 따른다. 클라이언트는 필드를 전송하지 않으며, 중복 방지는 서버에서 처리된다.
|
||||
- 최초 생성 시 `approval_status_id`에는 `대기` 상태 ID를 전달하고, 서버는 동일 상태로 저장한다.
|
||||
- 단계나 이력이 존재하면 `data.approval.steps`, `data.approval.histories`가 함께 반환된다.
|
||||
|
||||
@@ -907,10 +906,10 @@
|
||||
"items": [
|
||||
{
|
||||
"id": 5001,
|
||||
"approval_no": "APP-2025-0001",
|
||||
"approval_no": "APP-202511100001",
|
||||
"transaction": {
|
||||
"id": 9001,
|
||||
"transaction_no": "TXN-2025-0001"
|
||||
"transaction_no": "TRX-202511100001"
|
||||
},
|
||||
"status": {
|
||||
"id": 1,
|
||||
@@ -1006,10 +1005,10 @@
|
||||
{
|
||||
"data": {
|
||||
"id": 5001,
|
||||
"approval_no": "APP-2025-0001",
|
||||
"approval_no": "APP-202511100001",
|
||||
"transaction": {
|
||||
"id": 9001,
|
||||
"transaction_no": "TXN-2025-0001"
|
||||
"transaction_no": "TRX-202511100001"
|
||||
},
|
||||
"status": {
|
||||
"id": 1,
|
||||
@@ -1159,7 +1158,7 @@
|
||||
],
|
||||
"approval": {
|
||||
"id": 5001,
|
||||
"transaction_no": "TXN-2025-0001",
|
||||
"transaction_no": "TRX-202511100001",
|
||||
"status": {
|
||||
"id": 1,
|
||||
"name": "대기",
|
||||
@@ -1241,7 +1240,7 @@
|
||||
],
|
||||
"approval": {
|
||||
"id": 5001,
|
||||
"transaction_no": "TXN-2025-0001",
|
||||
"transaction_no": "TRX-202511100001",
|
||||
"status": {
|
||||
"id": 1,
|
||||
"name": "대기",
|
||||
@@ -1274,7 +1273,7 @@
|
||||
"data": {
|
||||
"approval": {
|
||||
"id": 5001,
|
||||
"transaction_no": "TXN-2025-0001",
|
||||
"transaction_no": "TRX-202511100001",
|
||||
"status": {
|
||||
"id": 2,
|
||||
"name": "진행중",
|
||||
@@ -1401,7 +1400,7 @@
|
||||
"data": {
|
||||
"approval": {
|
||||
"id": 5001,
|
||||
"approval_no": "APP-2025-0001",
|
||||
"approval_no": "APP-202511100001",
|
||||
"status": {
|
||||
"id": 2,
|
||||
"name": "진행중",
|
||||
@@ -1463,7 +1462,7 @@
|
||||
},
|
||||
"approval": {
|
||||
"id": 5001,
|
||||
"approval_no": "APP-2025-0001",
|
||||
"approval_no": "APP-202511100001",
|
||||
"status": {
|
||||
"id": 2,
|
||||
"name": "진행중",
|
||||
@@ -1537,7 +1536,7 @@
|
||||
},
|
||||
"approval": {
|
||||
"id": 5001,
|
||||
"approval_no": "APP-2025-0001",
|
||||
"approval_no": "APP-202511100001",
|
||||
"status": {
|
||||
"id": 2,
|
||||
"name": "진행중",
|
||||
@@ -1790,7 +1789,7 @@
|
||||
],
|
||||
"recent_transactions": [
|
||||
{
|
||||
"transaction_no": "TXN-2025-0001",
|
||||
"transaction_no": "TRX-202511100001",
|
||||
"transaction_date": "2025-09-18",
|
||||
"transaction_type": "입고",
|
||||
"status_name": "상신",
|
||||
@@ -1799,7 +1798,7 @@
|
||||
],
|
||||
"pending_approvals": [
|
||||
{
|
||||
"approval_no": "APP-2025-0005",
|
||||
"approval_no": "APP-202511100005",
|
||||
"title": "출고 결재",
|
||||
"step_summary": "2단계/3단계 진행중",
|
||||
"requested_at": "2025-09-17T03:00:00Z"
|
||||
|
||||
Reference in New Issue
Block a user