Skip to content

prodigy0831/java-convenience-store-7-prodigy0831

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

기능 요구 사항

재고 관리

  • products.md 파일을 읽고 사용자가 볼 수 있게끔 가공한다.
  • promotions.md의 프로모션 목록들의 조건들을 product 클래스에 매핑한다.
  • products.md내 각각의 Product의 정보와 Promotion의 정보를 담고 있는 product 클래스를 생성한다.
  • 모든 Product를 담고 있는 ProductRepository를 생성한다.
  • 매 결제별로 ProductRepository를 통해 Product의 재고를 반영한다.

입력

  • 사용자가 입력한 상품의 가격과 수량을 기반으로 결제 금액을 산출한다.
  • 영수증이 출력된 후 추가 구매를 진행할지 종료할지 선택이 가능하다.
  • 멤버십 사용 여부를 입력받는다.
  • 입력이 잘못된 경우 에러를 발생시킨다.

프로모션

  • promotions.md 내의 promotion들을 저장하는 클래스를 만든다. 같은 품목이어도 promotion이 적용되는 수량과 그렇지 않은 수량을 따로 관리한다.
  • 프로모션 기간을 확인하고 기간 내라면 프로모션 재고를 우선적으로 차감할 수 있게 한다.
  • 프로모션 적용이 가능한 상품에 대해 고객이 해당 수량보다 적게 가져온 경우, 필요한 수량을 추가로 가져오면 혜택을 받을 수 있음을 안내한다.
  • 프로모션 재고가 부족하여 일부 수량을 프로모션 혜택 없이 결제해야 하는 경우, 일부 수량에 대해 정가로 결제하게 됨 을 안내한다.

멤버십

  • 최대 한도(8000원)를 담고 있는 membership 클래스를 생성한다.
  • 멤버십 할인 요청이 들어오면 프로모션 미적용 금액에서 30퍼센트를 한도에서 제하고 영수증에 이를 반영한다.

결제

  • 총구매액은 상품별 가격과 수량을 곱하여 계산하며, 프로모션 및 멤버십 할인 정책을 반영하여 최종 결제 금액을 산출한다.

영수증 출력

  • 영수증은 고객의 구매 내역과 할인을 요약하여 주어진 양식에 맞게 출력한다.
  • 영수증의 구성 요소를 보기 좋게 정렬하여 고객이 쉽게 금액과 수량을 확인할 수 있게 한다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages