add_subcontract_progress (외주 기성 추가)
외주 계약에 기성 데이터를 추가합니다.
기본 정보
| 항목 |
값 |
| URL |
https://asia-northeast3-construction24-test.cloudfunctions.net/add_subcontract_progress |
| Method |
POST |
| 인증 |
Firebase ID Token 필요 |
| 권한 |
해당 회사의 멤버 |
요청
Body
| 필드 |
타입 |
필수 |
설명 |
검증 |
| token |
string |
O |
Firebase ID Token |
- |
| company_id |
string |
O |
회사 ID |
- |
| site_id |
string |
O |
현장 ID |
- |
| subcontract_id |
string |
O |
외주 계약 ID |
- |
| title |
string |
O |
기성 제목 |
최대 100자 |
| billing_date |
string |
O |
청구 일자 |
REGEX: YYYY-MM-DD |
| billing_amount |
number |
O |
금회 청구액 |
- |
| deduction_amount |
number |
O |
공제 금액 |
- |
요청 예시
{
"token": "eyJhbGci...",
"company_id": "abc123",
"site_id": "site456",
"subcontract_id": "subcontract789",
"title": "1차 기성",
"billing_date": "2025-02-15",
"billing_amount": 10000000,
"deduction_amount": 500000
}
응답
성공 (200)
{
"message": "외주 기성 추가 완료",
"progress_id": "progress123"
}
저장되는 데이터
| 필드 |
설명 |
| title |
기성 제목 |
| billing_date |
청구 일자 (datetime) |
| billing_amount |
금회 청구액 |
| billing_tax |
청구액 부가가치세 (자동 계산: billing_amount * vat_rate) |
| deduction_amount |
공제 금액 |
| deduction_tax |
공제 부가가치세 (자동 계산: deduction_amount * vat_rate) |
| created_at |
생성 시간 |
| created_by |
생성자 UID |
부가가치세 자동 계산
billing_tax와 deduction_tax는 상위 외주 계약의 vat_rate를 기반으로 자동 계산됩니다. 별도로 전달할 필요가 없습니다.
실패
| 에러 코드 |
message |
원인 |
| FINANCE_006 |
"존재하지 않는 외주 계약입니다." |
외주 계약이 존재하지 않는 경우 |
| PERMISSION_001 |
"회사 멤버가 아닙니다." |
요청자가 해당 회사의 멤버가 아닌 경우 |
| VALIDATION |
"billing_date의 형식이 올바르지 않습니다." |
날짜 형식 오류 |
Firestore 경로
/companies/{company_id}/sites/{site_id}/subcontracts/{subcontract_id}/progress/{progress_id}