> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alforse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 合約

> 依協議向客戶為服務計費：以引導流程設定條款，調整發票排程與收入計畫，並在交易變動時修訂、取消或續約合約。

使用**合約**向客戶收取一段期間的服務費用，結合一次性費用（例如導入實施）與訂閱或支援方案等定期費用。業務與財務團隊只需設定一次；Alforse 會從它的明細行算出每張發票與每個月的收入，在到期時起草每張發票，並按月認列收入。

## 概觀

| 合約的部分 | 它決定什麼 | 章節 |
| - | - | - |
| **條款** | 客戶、幣別、開始日期、期間長度、續約 | [設定合約](#setting-up-a-contract)、[續約](#renewal) |
| **明細行** | 為哪些服務計費、頻率、費率 | [明細行](#lines) |
| **發票排程** | 每張發票的日期，以及每條明細行各貢獻多少 | [發票排程](#the-invoice-schedule) |
| **收入計畫** | 每條明細行在每個日曆月賺得多少收入 | [收入](#revenue) |
| **合約類型** | 交易如何分類（新增銷售、增購……） | [合約類型](#contract-types) |

合約位於**銷售 → 服務合約**之下。

## 設定合約

你可以用兩種方式開始合約：

* 在合約清單上，選取**「新增合約」**（Add Contract）。
* 在銷售訂單上，從其選單選擇**「建立合約」**。請參閱[從銷售訂單建立](#from-a-sales-order)。

新合約會開啟五個步驟的引導設定。在第一步選取**「下一步」**會將合約儲存為草稿；之後每一步都會隨你編輯而儲存。若要回到尚未完成的草稿，請開啟它並選取**「繼續設定」**。

**詳細資料。**辨識這筆交易：客戶、合約名稱、合約類型與幣別。然後設定期間：**「開始日期」**、**「時間長度」**，以及結束時要做什麼，即\*\*「完成時的動作」**（請參閱[續約](#renewal)）。開啟**更多詳細資料**可看到**「合約結案日期」\*\*，也就是成交日，預設為今天。

**服務。**「**新增服務**」會帶入服務品項，每個都是價格為零的定期明細行。編輯儲存格以填入其值：**「收入類型」**、數量、費率、折扣或日期（請參閱[明細行](#lines)）。

**開立發票。**帳單詳細資料會從客戶預先帶入：**「付款條件」**、**「送貨至」**、**「發票地址」**、**「發票聯絡人」**與**「帳單寄送至」**。調整它們，然後處理[發票排程](#the-invoice-schedule)。

\*\*收入。\*\*為每條明細行選擇收入方法，並逐月檢查[收入計畫](#revenue)。

\*\*審查。**合約的摘要，後面是通往每個會阻擋**「確認」\*\*之問題的連結。

### 從銷售訂單建立

當交易最初是以銷售訂單輸入時，請使用訂單選單中的**「建立合約」**（已取消或已關閉的訂單不提供）。選擇要移動的**服務**明細行；已開立發票的明細行不能移動。Alforse 會開啟新的草稿合約，帶入訂單的客戶、帳單寄送對象、付款條件、幣別與採購單號。移動過來的明細行為一次性，因此請把任何訂閱明細行改為定期並給它一個費率單位。

此後，訂單會將移走的明細行視為已開立發票，所以為訂單開立發票只會收取其餘的明細行。如果你刪除草稿合約或它的某條明細行，受影響的明細行會回到訂單上。

## 生命週期

<details>
  <summary>**草稿**</summary>

  進行中的工作。你仍然可以更改條款、明細行、發票與收入計畫，而且尚未開出任何帳單。
</details>

<details open>
  <summary>**啟用中**</summary>

  生效中。排程已固定，每張發票在日期到達時起草，收入按月認列。進一步的變更要透過修訂或取消。
</details>

<details>
  <summary>**已結束**</summary>

  已完成：結束日期已過，且所有規劃的發票都已存在。不能編輯任何東西。
</details>

### 確認

**「確認」**只有在以下情況才會成功：

* 合約至少有一條明細行，且每條明細行都是服務品項；
* 每條定期明細行都有費率單位；
* 每條明細行的發票加總等於該明細行的總額；以及
* 每條明細行的收入等於它所計費的金額。

### 確認之後

條款與明細行此後只能透過[修訂](#amendments)變更。三項屬性仍可直接編輯：**「合約類型」**、**「開立發票」**與**「備註」**。**「刪除合約」**僅適用於草稿。

### 結束

每日計費作業會在合約的結束日期已過且每張規劃的發票都已起草時，將合約標記為已結束。無結束日期的合約除非被取消，否則絕不會到達這個狀態。

## 合約類型

每份合約與每次修訂都有合約類型：

| 類型 | 典型用途 |
| - | - |
| **新增銷售** | 凡不符合重新啟用資格的新合約，一律建議採用。 |
| **重新啟用** | 當客戶先前的所有合約都已結束時，建議用於新合約。 |
| **增購** | 建議用於提高定期價值的修訂。 |
| **收縮** | 建議用於降低定期價值的修訂。 |
| **現有** | 例如用於續約所記錄的修訂。 |

## 明細行

一條明細行為一個**服務**品項計費。它的**「收入類型」**是**一次性**或**定期**，並有自己的數量、費率、折扣、開始日期與結束日期；結束日期留空表示持續到合約結束。若要一次看到所有欄位，請開啟**「編輯詳細資料」**。

| 明細行設定 | 行為 |
| - | - |
| **一次性** | 在明細行開始當日或之後最早的發票上全額計費。 |
| **定期** | 每個計費期間收費。費率以**「每」**日、週、月、季或年報價，與你開立發票的頻率無關；按月開立發票的日費率沒有問題。 |
| **「折扣截止日」** | 限制定期明細行折扣的時間，例如第一年打八折。確認時會將其轉換為修訂：隔天，一份全價的明細行複本接手。 |
| **「專案」** | 除非更改，否則繼承自合約；明細行的收入過帳會把它帶為專案[維度](https://docs.alforse.com/zh-Hant/docs/reference/dimensions.md)。 |

## 發票排程

### 計費期間

開立發票的條款每份合約設定一次，並將每條定期明細行切成計費期間：

| 設定 | 選項與效果 |
| - | - |
| **「頻率」** | 每週、每月、每季或每年。 |
| **「對齊日曆期間」** | 關閉：期間從開始日期起算。開啟：期間對齊日曆的週（從星期一開始）、月、季或年，且第一個期間較短。 |
| **「計費時機」** | *預付*（Advance）把期間的發票訂在其第一天；*期末付款*（Arrears）訂在最後一天。 |
| **「首張發票」** | 任何日期早於此的發票都會移到這個日期。 |

### 期間如何定價

Alforse 每個期間收取整數個費率單位，並把剩餘的部分按天數比例分攤。

* **月份從期間的第一天量起。**所以 3 月 15 日到 4 月 14 日算一個整月，而對齊日曆的 11 月 15–30 日期間是 30 天中的 16 天。
* **日費率隨天數縮放。**31 天的月份，每日 \$15，合計 \$465。
* **例外：較長費率單位（月、季、年）的每週開立發票。**此時每一天按年度平均定價，使每一週都相同（每月 \$3,650 時，一週為 \$840.00），並使 365 天的一年恰好合計十二個月。

### 範例

合約從 11 月 1 日開始，按月預付開立發票。它有三條明細行：

| 明細行 | 類型 | 費率 | 首張發票 | 之後各月 |
| - | - | - | - | - |
| 導入實施 | 一次性 | \$48,000 | \$48,000 | — |
| 12 個授權 | 定期 | 每月 \$50，八折 | \$480 | \$480 |
| 支援 | 定期 | 每年 \$1,440 | \$120 | \$120 |
| **發票合計** | | | **\$48,600** | **\$600** |

### 編輯排程

合約處於草稿時，排程會以表格呈現：每張發票一列，每條明細行一欄。你可以：

* 在儲存格中編輯日期或金額，
* 用**「新增發票」**插入一張發票，或
* 用列選單中的**「刪除發票」**移除一張。

NOTE

**明細行的總額是固定的；只有時間可以移動**

表格編輯會在發票之間重新分配明細行的金額，但不能縮小或增加它。為 \$48,000 的費用開三張 \$16,000 的發票可行。發票合計只有 \$40,000 的話，會在\*\*「待開立發票」**列留下 \$8,000，而在它被分配之前你無法**「確認」\*\*。

編輯會使排程與明細行脫鉤：此後，明細行的變更會顯示為待開立發票的金額，而不是更新表格。若要捨棄你的編輯並依明細行重新產生排程，請使用**「重設排程」**。

### 規劃到多遠

有結束日期的合約，其發票會一路規劃到該日期。無結束日期的合約只規劃到下一個計費期間，且範圍每天向前滾動。

### 期中遷移的合約

當合約在期間進行到一半時從其他系統遷入，請開啟**進階** → **「從其他系統遷移？」**並設定**「已計費至」**。結束於該日期或之前的期間會被標示為**外部已計費**，Alforse 絕不會為它們開立發票。

Alforse screenshot**合約設定的開立發票步驟。帳單寄送至與排程區段位於發票表格上方，表格每張發票一列，並有「待開立發票」頁尾列**

誰付款、多久一次，以及所有規劃發票的完整清單，全都在同一個步驟。

Alforse screenshot**草稿合約的頁面：頂部為摘要，其下是含已編輯排程的發票區段，再來是收入預覽**

草稿檢視：開頭的發票帶有一次性費用，之後是每月發票。

## 開立發票

### 發票何時起草

每日作業會把每張日期在今天（含）以前的規劃發票轉為銷售發票，每份合約一張。若要立即為某份合約執行，請在合約啟用中時選取其上的**「發票」**。發票明細行會顯示它們涵蓋的計費期間，以及合約明細行的數量、定價與折扣；合約的**「送貨至」**會成為發票的送貨地址。

### 起草之後會發生什麼

接下來的處理由合約的**「開立發票」**屬性決定。如果合約沒有設定，則套用公司預設：**設定 → 開立發票**，**「定期發票」**。

| 設定 | 結果 |
| - | - |
| **僅草稿** | 發票等待有人過帳。 |
| **過帳** | 自動過帳。 |
| **過帳並寄送電子郵件** | 過帳後，將附上 PDF 的郵件寄給**「發票聯絡人」**，該聯絡人必須有電子郵件地址。 |
| **過帳並透過 Stripe 寄送** | 過帳後，透過你已連接的 Stripe 帳號連同付款連結一併寄出。 |

使用**過帳並透過 Stripe 寄送**時，計費客戶必須連結到 Stripe 客戶。如果沒有，**「確認」**會提議連結具有相同電子郵件的現有 Stripe 客戶，或建立新的，而你需要有建立發票的權限。

### 保留待審閱的發票

發票若符合下列情況，就不會依設定處理，而是被保留：

* 為合約變更開出貸項，
* 重新計費一張已作廢的發票，
* 違反銷售規則，或
* 發生過帳錯誤。

被保留的發票在**銷售發票**中會顯示黃色的**需要審閱**徽章，清單也可以依**需要審閱**篩選。合約的業務人員（若沒有則是其建立者）會收到每日摘要。

### 作廢與刪除

如果你作廢已過帳的合約發票，它的期間會回到排程，並在下次執行時再次計費，這次是開在被保留的發票上。刪除草稿合約發票也會以同樣方式釋出它的期間。

## 收入

### 每條明細行何時賺得收入

賺取視窗在**「上線」**時開啟（若為空，則是**「收入開始」**，再不然就是明細行的開始日期），並在**「收入結束」**（否則是明細行的結束日期）時關閉。在視窗內，明細行遵循兩種收入方法之一：

| 方法 | 模式 |
| - | - |
| **每日** | 每天相同金額。 |
| **均分期間** | 每個完整日曆月相同金額；不足月的部分按天數比例分攤。 |

### 收入計畫

在該視窗內，**收入計畫**把明細行已計費的總額分配到各日曆月，每月一個數字。草稿以表格顯示它（月份為列、明細行為欄），你可以在其中覆寫數字、用**「新增月份」**插入一個月份，或用**「刪除月份」**移除一個。明細行必須恰好認列它所計費的金額，所以只要**「待認列」**列還顯示任何數字，**「確認」**就會被阻擋。

NOTE

**編輯過的計畫不再自行更新**

在你更改之前，計畫會依明細行與發票排程重新計算。手動編輯之後，明細行或發票的變更則改為顯示為待認列的金額。選取\*\*「重設收入」\*\*以重新產生計畫。

### 遷移的收入

對於從其他系統遷移的合約，請設定**「收入認列起始自」**。在此之前的月份會顯示為**外部已認列**，且每條明細行都以「已計費減去在別處已認列」作為起始餘額，你再透過自己的期初日記帳過帳。

### 收入如何過帳

收入繫於明細行，而不是發票。每條明細行追蹤它已開立發票的金額與已認列的金額之間的差額。

* **先計費後賺得：**為尚未賺得的收入開立的發票，會過帳到遞延收入，而不是銷售。
* **先賺得後計費：**為尚未開立發票的月份所認列的收入，會累積在合約資產。當它的發票到達時，會先沖銷該合約資產餘額，只遞延剩餘的部分。
* **每月認列：**位於**會計 → 收入認列**下的**收入認列**執行，會認列在執行期間結束前已開始的每個規劃月份。它會從遞延收入扣到該餘額用完為止，其餘記入合約資產。

### 保護已過帳數字的規則

* 在合約月份到期之前提出的認列執行，必須先重新計算才能過帳。
* 對於外幣合約，已沖銷餘額上的匯率差額會進入已實現匯兌損益，絕不進入收入。
* 修訂、取消與續約會從其生效日期起重新規劃收入。已認列的月份絕不會被更改；任何差額會放在下一個規劃月份。

## 修訂

### 進行變更

修訂是啟用中的合約在確認後變更的方式。開啟**「修訂」**，輸入**「變更日期」**與**「原因」**，然後編輯、新增或結束明細行。**「生效」**選項決定變更的時間安排：

| 選項 | 效果 |
| - | - |
| **從變更日期起** | 現有明細行在前一天停止，替代的明細行從變更日期開始，並按天數比例分攤。 |
| **從下一個計費期間起** | 不做比例分攤：新條款從下一個計費期間開始時適用。 |

Alforse 將每次變更儲存為修訂，並在合約的**修訂**區段中顯示歷程，最新的在最上面。

### 已開立發票期間的調整

當發票已涵蓋變更日期之後的天數時，這些天數會在下一張發票上以**調整**更正，金額等於已計費金額 × 變更後的天數 ÷ 已計費天數。

以前面的範例來說，假設授權數在 3 月 12 日從 12 個增加到 18 個。那麼 4 月 1 日的發票會帶有 \$309.68 的貸項，以及 3 月最後 20 天的 \$464.52 費用。

### 預覽與分類

修訂對話框會在儲存任何東西之前顯示所產生調整與即將開立發票的預覽。它會根據定期價值的變動提議**「合約類型」**：上升時為*增購*，下降時為*收縮*。

## 取消

### 取消合約

**「取消」**會要求**「結束日期」**，預設為目前計費期間的結尾，讓已計費的任何東西都不必沖貸。未結的明細行在該日期停止，其後規劃的發票被捨棄，合約也不會續約。

### 為未使用的時間開立貸項

在客戶已預付的期間中途結束合約？勾選**「為未使用的時間開立貸項」**（Credit unused time），Alforse 會起草涵蓋剩餘天數的貸項單。過帳時，該貸項單會從遞延收入扣除，已認列的部分則從合約資產扣除。請注意，這張貸項單不能作廢。

### 對收入的影響

新結束日期之後的月份中已認列的收入會被沖回：下一次認列執行會記入一個負的月份。

### 還原

改變主意了？只要取消後的結束日期仍在未來，且任何未使用時間的貸項單尚未過帳，**「還原取消」**就會恢復先前的結束日期與續約設定。

## 續約

在**「時間長度」**中選擇期間長度：6 個月、1 年、2 年、3 年、自訂結束日期，或無限期（沒有結束日期）。

將**「完成時的動作」**設為**續約**，則在結束日期，每日作業會再加一個期間。繼續的定期明細行會依**「續約漲幅（%）」**向上重新定價，並以*現有*修訂記錄這次續約。

## 疑難排解

### 設定期間

| 訊息 | 原因 | 修正 |
| - | - | - |
| 「Set the contract's start date first」（請先設定合約的開始日期） | 在還沒有開始日期時使用了**新增服務**。 | 在詳細資料步驟輸入**「開始日期」**。 |
| 「Only Service lines can move to a contract」（只有服務明細行可以移到合約）／「A line that is already invoiced cannot move to a contract」（已開立發票的明細行不能移到合約） | **建立合約**收到了不符資格的銷售訂單明細行。 | 選擇沒有任何已開立發票的服務明細行。 |
| 「Only recurring lines have a rate unit.」（只有定期明細行有費率單位。） | 一次性明細行帶有費率單位。 | 移除費率單位，或把明細行改為定期。 |

### 確認時

| 訊息 | 原因 | 修正 |
| - | - | - |
| 「A contract needs at least one service line.」（合約至少需要一條服務明細行。）／「A contract line must be a Service item」（合約明細行必須是服務品項） | 合約是空的，或某條明細行的品項不是服務品項。 | 加入使用服務品項的明細行。 |
| 「Edited invoice schedule does not conserve each line total.」（編輯後的發票排程未保留每條明細行的總額。）／「Revenue plan does not conserve each line total.」（收入計畫未保留每條明細行的總額。） | 表格編輯之後，明細行的部分金額沒有被放在任何地方。 | 放置「待開立發票」或「待認列」中顯示的金額，或用**重設排程**／**重設收入**重建。審查步驟會列出每一項。 |
| 「Add an invoice contact with an email to send invoices」（請新增有電子郵件的發票聯絡人以寄送發票） | 開立發票設為*過帳並寄送電子郵件*，但發票聯絡人沒有電子郵件。 | 選擇有電子郵件地址的發票聯絡人。 |

### 在啟用中的合約上

| 訊息 | 原因 | 修正 |
| - | - | - |
| 「Only a Draft contract can be edited — use Amend」（只有草稿合約可以編輯——請使用修訂）／「Active contract terms require an amendment.」（啟用中的合約條款需要修訂。） | 直接編輯了合約類型、開立發票或備註以外的欄位。 | 透過**修訂**進行變更。 |
| 「Only a Draft contract can be deleted. Cancel it instead.」（只有草稿合約可以刪除。請改為取消。） | 對已確認的合約使用了**刪除**。 | 使用**取消**。 |
| 「Only an uncancelled Active contract can be amended.」（只有未取消的啟用中合約可以修訂。）／「Only an uncancelled Active contract can be cancelled.」（只有未取消的啟用中合約可以取消。） | 合約不是啟用中，或已被取消。 | 沒有需要修正的；該動作不適用。 |
| 「Amendment is outside the contract term.」（修訂超出合約期間。）／「Next period is outside the contract term.」（下一期間超出合約期間。）／「Cancellation end is outside the contract term.」（取消結束日超出合約期間。） | 所選日期早於合約開始或晚於合約結束。 | 選擇期間內的日期。 |
| 「A recognized period overlaps this change; reverse its native recognition run first.」（已認列的期間與此變更重疊；請先沖回其原生認列執行。）／「Reverse overlapping revenue recognition before cancelling.」（取消前請先沖回重疊的收入認列。） | 已過帳的收入認列執行已認列了此變更所涉及的月份。 | 先沖回該執行，然後重試。 |
| 「Only a cancellation whose end date has not passed can be reverted.」（只有結束日期尚未過去的取消可以還原。）／「Billing or recognition facts changed after cancellation; reconcile them before reverting.」（取消後計費或認列事實已變動；請先調節再還原。） | 還原已太遲：結束日期已過，或取消之後發生了計費或認列。 | 調節那些分錄，或保留取消。 |

### 標記為需要審閱的發票

| 發票上的保留原因 | 意義 | 該怎麼做 |
| - | - | - |
| 「Includes a credit for a contract change」（包含合約變更的貸項） | 發票帶有修訂調整。 | 檢查後手動過帳。 |
| 「Re-billing INV…, which was voided」（重新計費已作廢的 INV…） | 發票重新計費一張已作廢發票的期間。 | 檢查後手動過帳。 |

## 相關內容

**銷售訂單**

合約可以從訂單開始，其移動過來的明細行此後視為已開立發票。

[Open](https://docs.alforse.com/zh-Hant/docs/reference/sales-orders.md)

**發票**

起草的合約發票之過帳、明細行折扣與作廢。

[Open](https://docs.alforse.com/zh-Hant/docs/reference/invoices.md)

**租賃協議**

另一種定期文件；它與合約共用每日計費作業與開立發票設定。

[Open](https://docs.alforse.com/zh-Hant/docs/reference/rental-agreements.md)

**維度**

寫在每條合約明細行收入上的專案維度。

[Open](https://docs.alforse.com/zh-Hant/docs/reference/dimensions.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.