콘텐츠로 이동

set_material_cost_data (자재 비용 데이터 저장)

특정 날짜의 자재 비용 데이터를 저장합니다. 기존 데이터가 있으면 덮어씁니다.

기본 정보

항목
URL https://asia-northeast3-construction24-test.cloudfunctions.net/set_material_cost_data
Method POST
인증 Firebase ID Token 필요
권한 해당 회사의 멤버

요청

Body

필드 타입 필수 설명 검증
token string O Firebase ID Token -
company_id string O 회사 ID -
site_id string O 현장 ID -
supplier_id string O 공급자 ID -
date string O 날짜 YYYY-MM-DD 형식
data array O 자재 비용 항목 배열 각 항목 검증 필요

data 배열 요소 형식

필드 타입 설명 검증
quantity number 수량 숫자로 변환 가능해야 함
unit_price number 단가 숫자로 변환 가능해야 함
supply_amount number 공급가액 숫자로 변환 가능해야 함
tax number 세액 숫자로 변환 가능해야 함
total number 합계 수량*단가 == 합계, 공급가액+세액 == 합계

요청 예시

{
  "token": "eyJhbGci...",
  "company_id": "abc123",
  "site_id": "site456",
  "supplier_id": "supplier789",
  "date": "2024-03-15",
  "data": [
    {
      "quantity": 100,
      "unit_price": 10000,
      "supply_amount": 909091,
      "tax": 90909,
      "total": 1000000
    },
    {
      "quantity": 50,
      "unit_price": 20000,
      "supply_amount": 909091,
      "tax": 90909,
      "total": 1000000
    }
  ]
}

응답

성공 (200)

{
  "message": "자재 비용 데이터 저장 완료",
  "date": "2024-03-15",
  "date_doc_id": "20240315"
}

실패

코드 message 원인
400 "data는 배열이어야 합니다." data가 배열이 아닌 경우
400 "{n}번째 항목 숫자 변환 오류: ..." 숫자 필드 변환 실패
400 "{n}번째 항목 검증 실패: 공급가액+세액(...) != 합계(...)" 공급가액+세액 != 합계인 경우
400 "{n}번째 항목 검증 실패: 수량*단가(...) != 합계(...)" 수량*단가 != 합계인 경우
500 "date는 YYYY-MM-DD 형식이어야 합니다." 날짜 형식 오류
500 "해당 회사의 멤버가 아닙니다." 요청자가 해당 회사의 멤버가 아닌 경우
500 "존재하지 않는 공급자입니다." 해당 공급자가 존재하지 않는 경우

참고

  • 동일 날짜에 데이터가 이미 존재하면 덮어씁니다.
  • 저장 시 total_sum(합계의 총합)과 tax_sum(세액의 총합)이 자동 계산됩니다.
  • 저장 후 Firestore 트리거에 의해 공급자의 total_cost, total_tax, year_costs, year_tax, month_costs, month_tax가 자동 업데이트됩니다.
  • 관련 API: [[add_material_supplier]], [[material_document_extraction]]