셀렉트 쇼룸(showroom) 정산내역 페이지 YAML

셀렉트 쇼룸의 정산내역 페이지 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>