셀렉트 쇼룸의 정산내역 페이지 YAML 파일 내용입니다.
type: left
안에 정산 샘플 화면과 type: right
에 설명이 있습니다.
실제 사용하실 때는 type: left
아래 blocks 내용만 사용하시면 됩니다.
menus:
- path: billing
name: 💵 정산내역
group: billing
pages:
- path: billing
blocks:
- type: left
style:
maxWidth: 1300px
overflow: scroll
maxHeight: calc(100vh - 100px)
class: p-4
blocks:
- type: query
name: 1
resource: mysql.qa
sqlType: select
sql: >
SELECT
(
SELECT COUNT(id) AS count_all
FROM Billing
) AS count_all,
(
SELECT COUNT(CASE WHEN (bank_name IS NULL) OR (account_name IS NULL) OR (payout_recipient_account IS NULL) THEN 1 END) AS no_bank_info
FROM Billing
) AS no_bank_info,
(
SELECT COUNT(CASE WHEN status <> 'confirmed' THEN 1 END) AS not_confirmed
FROM Billing
) AS not_confirmed,
(
SELECT COUNT(CASE WHEN tax_invoice_status = 'pending' THEN 1 END) AS invoice_pending
FROM Billing
) AS invoice_pending
display: metric
showDownload: false
columns:
count_all:
label: 전체
no_bank_info:
label: 은행정보 없음
not_confirmed:
label: 정산 미확정
invoice_pending:
label: 세금계산서 대기
- type: query
name: 프로젝트
resource: mysql.qa
sqlType: select
sql: >
SELECT *
FROM Project
WHERE (LENGTH(:pid) = 0 OR id = :pid)
ORDER BY id DESC
showDownload: false
paginationOptions:
enabled: true
perPage: 3
params:
- key: pid
hidden: true
submitButton:
class: d-none
columns:
id:
name:
label: 이름
customer_id:
label: 고객ID
producer_id:
label: 제작사ID
matched_at:
label: 매칭일
start_at:
label: 시작일
end_at:
label: 종료일
status:
label: 상태
created_at:
label: 생성일
updated_at:
label: 최종수정일
- type: query
name: 정산
resource: mysql.qa
sqlType: select
showDownload: false
sql: >
SELECT *
FROM Billing
WHERE (LENGTH(:status) = 0 OR status = :status)
AND (LENGTH(:tax_invoice_status) = 0 OR tax_invoice_status = :tax_invoice_status)
AND (LENGTH(:dateFromTo1) = 0 OR (created_at BETWEEN :dateFromTo1 AND :dateFromTo2))
AND (LENGTH(:pid) = 0 OR project_id = :pid)
paginationOptions:
enabled: true
perPage: 10
resetButton:
label: 초기화
type: light
# clear: true
tableOptions:
bordered: false
params:
- key: pid
label: 프로젝트ID
datalist: true
datalistPreview: true
datalistFromQuery:
type: query
resource: mysql.qa
sqlType: select
sql: >
SELECT id AS 'value', name AS 'label' FROM Project
- key: dateFromTo
label: 조회 기간
format: date
showButtons: true
range: true
shortcuts:
- label: 최근 일주일
from:
offset: -7
period: day
to:
offset: 0
period: day
- label: 최근 3개월
from:
offset: -3
period: month
to:
offset: 0
period: month
- label: 이번달
from:
offset: 0
startOf: month
to:
offset: 0
endOf: month
- key: status
label: 확인상태
defaultValue: ''
radio:
- '': ALL
- pending: 대기중
- confirmed: 완료
radioButtonGroup: true
- key: tax_invoice_status
label: 세금계산서 상태
defaultValue: ''
radioButtonGroup: true
radio:
- '': ALL
- pending: 대기중
- done: 완료
modals:
- path: billing-read
# mode: side
blocks:
- type: query
name: project
resource: mysql.qa
sqlType: select
sql: >
SELECT name FROM Project WHERE id = :project_id
display: form
params:
- key: project_id
valueFromRow: project_id
columns:
name:
label: 프로젝트명
- type: query
name: billing detail
resource: mysql.qa
sqlType: select
sql: >
SELECT * FROM Billing WHERE id = :id
display: form
params:
- key: id
valueFromRow: id
columns:
id:
label: 빌링ID
project_id:
label: 프로젝트ID
type:
label: 정산 타입
valueAs:
pre-pay: 선금 pre
balance-pay: 잔금 balance
created_at:
label: 생성일
pay_due_date:
label: 지불 예정일
due_amount:
label: 지불 예정금액
paid_amount:
label: 지불금액
payment_method:
label: 지불방법
valueAs:
wired: 계좌이체
confirm_requested_at:
label: 확인요청일
checked_amount:
label: 확인금액
status:
label: 확인상태
valueAs:
confirmed: 확인완료
pending: 대기중
confirmed_at:
label: 확정일
updated_at:
label: 최종수정일
deleted_at:
label: 삭제일
commission:
label: 커미션 금액
payout_amount:
label: 정산 지급액
payout_date:
label: 지급일
payout_recipient_account:
label: 지급 계좌
bank_name:
label: 은행
account_name:
label: 계좌주 명
payout_status:
label: 지급 상태
color:
transfered: blue
tax_invoice_status:
label: 세금계산서 상태
color:
pending: red
done: green
- path: billing-edit
mode: side
name: 정산내역 수정 BID-{{id}} / PRJ-{{project_id}}
blocks:
- type: query
# name: billing detail
# description: 수정 안내문구
resource: mysql.qa
sqlType: update
class: px-2
sql: >
UPDATE Billing
SET type = :type,
pay_due_date = :pay_due_date,
due_amount = :due_amount,
paid_amount = :paid_amount,
payment_method = :payment_method,
confirm_requested_at = :confirm_requested_at,
checked_amount = :checked_amount,
status = :status,
confirmed_at = :confirmed_at,
updated_at = :updated_at,
deleted_at = :deleted_at,
commission = :commission,
payout_amount = :payout_amount,
payout_date = :payout_date,
payout_recipient_account = :payout_recipient_account,
bank_name = :bank_name,
account_name = :account_name,
payout_status = :payout_status,
tax_invoice_status = :tax_invoice_status
WHERE id = :id
AND project_id = :pid
params:
- key: id
valueFromRow: id
- key: pid
valueFromRow: project_id
label: 프로젝트ID
- key: type
defaultValueFromRow: type
label: 정산 타입
radio:
- pre-pay: 선금 pre
- balance-pay: 잔금 balance
- key: pay_due_date
defaultValueFromRow: pay_due_date
label: 지불 예정일
- key: due_amount
defaultValueFromRow: due_amount
label: 지불 예정금액
- key: paid_amount
defaultValueFromRow: paid_amount
label: 지불금액
- key: payment_method
defaultValueFromRow: payment_method
label: 지불방법
- key: confirm_requested_at
defaultValueFromRow: confirm_requested_at
label: 확인요청일
- key: checked_amount
defaultValueFromRow: checked_amount
label: 확인금액
- key: status
defaultValueFromRow: status
label: 확인상태
- key: confirmed_at
defaultValueFromRow: confirmed_at
label: 확정일
- key: updated_at
defaultValueFromRow: updated_at
label: 최종수정일
- key: deleted_at
defaultValueFromRow: deleted_at
label: 삭제일
- key: commission
defaultValueFromRow: commission
label: 커미션 금액
- key: payout_amount
defaultValueFromRow: payout_amount
label: 정산 지급액
- key: payout_date
defaultValueFromRow: payout_date
label: 지급일
- key: payout_recipient_account
defaultValueFromRow: payout_recipient_account
label: 지급 계좌
- key: bank_name
defaultValueFromRow: bank_name
label: 은행
- key: account_name
defaultValueFromRow: account_name
label: 계좌주 명
- key: payout_status
defaultValueFromRow: payout_status
label: 지급 상태
- key: tax_invoice_status
defaultValueFromRow: tax_invoice_status
label: 세금계산서 상태
columns:
작업:
prepend: true
buttons:
- label: 조회
openModal: billing-read
type: primary-light
id:
label: 정산ID
project_id:
updateParams:
pid: "{{project_id}}"
label: 프로젝트ID
type:
label: 정산 타입
valueAs:
pre-pay: 선금 pre
balance-pay: 잔금 balance
created_at:
label: 생성일
pay_due_date:
label: 지불 예정일
due_amount:
label: 지불 예정금액
paid_amount:
label: 지불금액
payment_method:
label: 지불방법
valueAs:
wired: 계좌이체
confirm_requested_at:
label: 확인요청일
checked_amount:
label: 확인금액
hidden: true
status:
label: 확인상태
valueAs:
confirmed: 확인완료
pending: 대기중
dropdown:
- confirmed: 확인완료
- pending: 대기중
updateOptions:
type: query
resource: mysql.qa
sql: >
UPDATE Billing
SET status = :value, updated_at = NOW()
WHERE id = :id
AND project_id = :pid
params:
- key: pid
valueFromRow: project_id
confirmed_at:
label: 확정일
updated_at:
label: 최종수정일
hidden: true
deleted_at:
label: 삭제일
hidden: true
commission:
label: 커미션 금액
payout_amount:
label: 정산 지급액
payout_date:
label: 지급일
payout_recipient_account:
label: 지급 계좌
hidden: true
bank_name:
label: 은행
hidden: true
account_name:
label: 계좌주 명
hidden: true
payout_status:
label: 지급 상태
color:
transfered: blue
tax_invoice_status:
label: 세금계산서 상태
color:
pending: red
done: green
- type: right
style:
maxWidth: 500px
overflow: scroll
border: 0
blocks:
- type: markdown
content: |
<div class="flex container" style="max-width: 840px">
<div class="bg-slate-50 text-slate-600 text-base w-100 rounded-2xl p-5 leading-7"
style="
background-image: url(https://files.umso.co/lib_bwRJlGVmETDRvOcA/epnckid1muvpvnxs.png);
background-size: 20vh;
background-position: center 5%;
background-repeat: no-repeat;
padding-top: 23vh !important;
min-width: 300px
"
>
# 정산관리
제작대행, 예약상품, 전문가 매칭서비스 등 마켓플레이스 서비스는 소비자와 고객의 결제 후에 공급자 쪽으로 정산과정이 필요합니다.
정산은 비즈니스마다 참여자들의 니즈가 다르기 때문에 서비스마다 최적화된 과정이 요구됩니다.
비즈니스와 서비스가 발전하면서 새로운 사례도 생기기 마련입니다.
셀렉트를 통해 정산 어드민을 효과적으로 구축하고 지속적으로 발전시켜보세요.
**포인트1.** 정산 대상별로 정보를 쉽게 파악하세요.
**포인트2.** 아직 처리가 되지 않은 정산내역을 상태로 필터링해보세요.
</div>
</div>