-
Notifications
You must be signed in to change notification settings - Fork 0
Spec
Tiny_Murky edited this page Nov 14, 2024
·
63 revisions
- 一樣需要紀錄還沒read的比數
- To Be Continue
- Certificate 是上傳的時候就開始分析(但是還是要前端幫忙用certificate id post)(2024/10/08更新)
- DOCS -Certificate API規劃 #2872
- To Be Continue
- 目前不需要做下面的結帳年限設定,以及也沒有限制用戶多久以前的傳票不能開(2024/09/27更新)
需要新增一個api可以下載拋轉結束後的財報
- Anna
- Jodie
- Murky
Flow Chart
-
General
- Counterparty invoice和 lineItem都需要有(voucher上的counterparty移過去,lineItem只有在payable/receivable的時候會有
- 所有List voucher都需要回傳未讀的數量
- Voucher List當中呈現的日期是 用戶自己選定的日期,也就是voucher date (beta) or journal->invoice->date (alpha), 然後voucher流水號是用createAt(2024/09/27更新)
- Voucher目前可以讓用戶自由的決定voucherDate, 就算是以前的也可以,但是需要跳通知提醒用戶不應該這麼做(例子如下)(2024/09/27更新)
- 提醒用戶每個月底與跨年前應將本月帳務確實完成登打
- 當用戶想登打或編輯上個月或去年的帳時,很可能是手誤,應予以提示
- 若用戶執意登打或編輯仍要與許其登打,避免其連續受罰
- 當用戶登打的收據,帳務發生日已經由會計師開立會計報表時(EX: 已出具 2023 年三大會計報表,登打 2023-09-27 帳單)、已超出書審期限時、是去年以前的帳時,其傳票應加上逾期標註,用於未來產生報表時建立保留盈餘等會計科目修正說明
- 逾期登打的收據無法扣抵稅額 (法律上規定的有第四點逾期登打的收據應該還是可以扣抵的~ 有10年的限期)
-
List all "Uploaded" Vouchers
- vocuher需要有一個可以直接找出特定一個account的 query (2024/10/4)
- 可以SortBy
Issue Date
,Credit
,Debit
- 可以選擇
StartDate
,endDate
來篩選Voucher - 可以點擊一個Vouvher連接到Voucher Info
- 可以Search by 各個欄位
- 會顯示總共有多少筆, 現在在第幾頁, 是不是有上或下一頁, 總共有幾頁
- 每一筆Voucher應該要顯示:
- voucher date 用戶自己設定的date
- Voucher No (傳票編號)
- Note 註記
- 顯示每一筆line items, 需要有 account 名稱, debit credit的數字,還有加總結果
- Counter Party (voucher的對象是誰)
- Issuer(作者)
- 可以打勾多筆Voucher並一次性刪除
- 可以下載CSV檔
- Type and date:
-
List all "Upcoming" Vouchers
- 需要回傳未讀的數量
- 和"Uploaded" Vouchers 外表類似,但是多加了Period (裡面包含 Every Month or Week or Year, 以及Week 是星期幾或是Month or Year是哪一天)
- 來源是 1. voucher create 的時候選擇Recursive 2. asset的折舊
- Sort 也需要 可以用Period去sort
-
List all Payable/ Receivables
- 本質上也是voucher list, 但是是特別只有 lineitem裡面有
Account Receivable
,Account Payment
,other Receivable
.other Payment
- 欄位需要呈現:
- voucher date 用戶自己設定的date
- Voucher No (傳票編號)
- Counter Party (voucher的對象是誰)
- Issuer(作者)
- Receivables/Payable總共會收多少錢
- 已經收/付 多少錢
- 剩下來多少錢
- 需要紀錄清賬的時候要列出來清賬分錄的voucherId
- 會顯示總共有多少筆, 現在在第幾頁, 是不是有上或下一頁, 總共有幾頁
- 可以Search by 各個欄位
-
4 .List all voucher by Account
- 這個api特別只展示出一個 "account"分類下所有 "未沖帳完成的voucher"
- 本質上也是voucher list, 但是是特別只有 lineitem裡面有
-
List all LineItem by account
- 還是從voucher出發,但是會回傳 voucher 上面同時滿足: 1. lineItems 是可沖帳的 account, 2. lineItems尚未沖帳完成 的部份
- 要回傳
account-voucher-description-原始金額
的資訊
-
GET one voucher
- 可以看到 certificates, certificates要有總數與分頁
- 需要呈現Voucher date, voucher type, note, counter party的資訊
- 如果有Recursive屬性需要寫上持續時間以及 頻率 與發生星期幾或是每月第幾天或是每年的哪一天
- 如果有Asset 屬性需要 把asset的編好list出來
- 如果有清賬屬性,需要把清賬對應的傳票列出來
-
ADD/PUT Voucher => 請先參考flow chart
- PUT Voucher 並不是去修正原本的傳票,而是開一個新的修正Voucher,需要與原本被編輯的voucher相連(2024/09/27更新)
- voucherNo 不可以是unique(不同公司會撞No), 另外upcoming event 會是null
- if recurring, 要同時建立event和剩餘所有的upcoming 的voucher, voucherNo是null, issuer要是機器人 (記得要在seeder裡面加一個所有公司共用的機器人)
- 增添或是重製的時候的需要連到exist的asset
- voucher 如果有recurring的話,需要在第一間voucher建立好的
- 需要設定cronJob自動將upcoming變成uploaded
- 如果put Recurring event, 要修改所有 "Upcoming event"的voucher, 不要修改"uploaded event"
- 目前暫定 如果 put/delete的時候voucher date 壓當天
-
Put Voucher的邏輯拆分如下 2024/11/14
- 如果畫面中
lineItem
的部份被更改的話,請前端直接callDelete Voucher
加上Post Voucher
, 這個時候會直接把原本的分錄創一個反轉的分錄產生對沖的效果 (但最原始的voucher與lineItem還是保持成未刪除狀態), 然後再創一個新的voucher - 如果是修改lineItems以外的部份(也就是說像是voucherDate,Description, voucherType, CounterParty, Asset, Reverse之間的關係)就用
Put Voucher
然後修改原本的voucher
- 如果畫面中
-
Delete Voucher
- Delete voucher不可以真的刪掉,而是做一個迴轉voucher, 被"delete"的voucher需要更新deleteAt,並且迴轉voucher需要與被"delete" voucher連接(2024/09/27更新)
-
Check Read
- 需要有一個table 紀錄user-voucher read的關係,關係會是
userId, voucherId, isRead, updateAt, createAt
, isRead Default false - 未讀的voucher會有一個未讀的記號
- 如果掃過頁面(也就是進入到list array的時候)就把畫面上所有的voucher都改成Read (已經read過得就不用update了) 然後更新數字 要事先get list => POST read的順序
- 如果有更改狀態像是 Upcoming => Uploaded的時候要把isRead 變回false
- 需要有一個table 紀錄user-voucher read的關係,關係會是
-
Export PDF
- Export的時候直接下載PDF
- 需要前端來執行
- Anna
- Straw
- Murky
-
列出所有的 asset 列表,它需要
- 每一個Row 有Acquisition day, type, 財產編號, 財產名稱, 購買金額, 累計折舊, 殘值, 剩餘天數
- 可以依照type(是不動產、廠房、設備的大科目) 找出asset
- 可以依照status,也就是資產目前是在 公司內部, 廢棄, 賣出等等狀態
- 可以用 獲取時間(Acquisition day)篩取範圍
- 可以用Search 找到 資產(不確定要search的欄位,也許資產編號和名稱?)
- 可以用Pagination(需要符合
Ipagination
data type) - 可以把asset list 轉成csv?
- 可以修改資產狀態
Type
Status
-
單一一筆Asset呈現
- 要有 Asset name, Asset 編號, Asset Type會計科目, Acquisition day 獲得時間, Depreciation start date 折舊開始時間, Depreciate method 折舊方法(像是直線法), useful life可使用總時間, purchase price購買金額, currency alias幣種? , accumulate depreciation 累計折舊, residual value (這裡不是指最後估計可以賣多少錢, 而是指purchase price - accumulate depreciation), remaining useful life 剩餘使用期間, note, voucherId (購買這個asset的時候的voucher)
Warning
刪除Asset 之後,要連同以前和這個Asset有關的所有voucher都要刪掉(或沖轉?),包含像是購買和折舊
-
- 可以修改asset state
-
Add Asset to voucher
- Asset 在建立的時候要一起建立 折舊費用
- Add Asset 的時候要紀錄折舊方法,會有下拉選單,但是會預設是直線法,
- 需要紀錄殘值,填一個數字但預設是0
- 建立Asset之後需要提醒它幾天之後就不可以刪除了(送出的時候)
- 不需要有特殊欄位紀錄是 成本模式、
- 進入到下面這個畫面的方法是在voucher 的欄位中選
- 可以增加Asset連到voucher(這邊應該坐在vouhcer)
- 增加Asset點下去之後需要增加下面這些值存在database
- 也要可以修改asset資訊
- 另外在New的時候就需要把所有以後的折舊的分錄放在Upcoming Event
-
在 upcoming event裡面,要列出資產未來可能產生的折舊(在新增Asset的時候增加)
-
Delete Asset
- 今天如果有任何傳票掛到這間公司上面(除了購買傳票之外)就不可以刪除
- 刪除功能指的是幫它開一個沖銷分錄,然後資產deleteAt加數字,被刪除的資產用戶看不到
如果是屬於 可以沖帳的科目 (請參考 會計科目表 中綠色的科目),如果該原始傳票已經被全部沖乾淨,就不會顯示在ledger裡面- (2024/10/28) 上面的資訊是錯的,ledger呈現所有該哥目的傳票,Report點進去的傳票才會限制是沒有沖帳完成的
-
A010001 -
GET /audit_report
- iSunFA-Landing-page-Animation10 [不需驗證登入] -
A020001 -
GET /company/:companyId/account
-ISFMK00040
,ISFMK00031
-
A020002 -
GET /company/:companyId/account/:accountId
-
A020003 -
POST /company/:companyId/account
-ISFMK00040左邊
-
A020004 -
PUT /company/:companyId/account/:accountId
-ISFMK00031下面
-
A021005 -
DELETE /company/:companyId/account/:accountId
-ISFMK00040左邊
-
A040001 -
POST /company/:companyId/asset
-ISFMK00052
-
A040002 -
GET /company/:companyId/asset
-ISFMK00052
-
A041001 -
GET /company/:companyId/asset/:assetId
-ISFMK00052
-
A041002 -
PUT /company/:companyId/asset/:assetId
-ISFMK00052
-
A050001 -
GET /company/:companyId/ask_ai/:resultId/status?aiApi=
-ISFMK00052
-
A050002 -
GET /company/:companyId/ask_ai/:resultId?aiApi=
-ISFMK00052
-
A060001 -
GET /company/:companyId/admin
-ISFMK00005
-
A060002 -
GET /company/:companyId/admin/:adminId
-ISFMK00005
,ISFMK00063
-
A060003 -
PUT /company/:companyId/admin/:adminId
-ISFMK00063
-
A060004 -
DELETE /company/:companyId/admin/:adminId
-ISFMK00063
-
A060005 -
PUT /company/:companyId/transfer_owner
-ISFMK0069
-
C010001 -
GET /company/:companyId/client
-ISFMK00032
-
C010002 -
POST /company/:companyId/client
-ISFMK00032
-
C011001 -
GET /company/:companyId/client/:clientId
-ISFMK00032
-
C011002 -
PUT /company/:companyId/client/:clientId
-ISFMK00032
-
C011003 -
DELETE /company/:companyId/client/:clientId
-ISFMK00032
-
C030001 -
GET /company/:companyId/contract
-ISFMK00003
-
C030002 -
POST /company/:companyId/contract
-ISFMK00011
-
C031001 -
GET /company/:companyId/contract/:contractId
-ISFMK0008
-
C031002 -
PUT /company/:companyId/contract/:contractId
-ISFMK00011
-
C040001 -
GET /company
-ISFMK00004
-
C040002 -
POST /company
-ISFMK00004
-
C041001 -
GET /company/:companyId
-ISFMK00069
-
C041002 -
PUT /company/:companyId
-ISFMK00069
-
C041003 -
DELETE /company/:companyId
-ISFMK00069
-
C042001 -
PUT /company/:companyId/select
-ISFMK00004
-
C070001 -
GET /challenge
-ISFMK00001
[不需驗證登入] -
D010001 -
GET /company/:companyId/department
-ISFMK00041
-
E010001 -
GET /company/:companyId/employee
-ISFMK00041
-
E010002 -
POST /company/:companyId/employee
-ISFMK00041
-
E011001 -
GET /company/:companyId/employee/:employeeId
-ISFMK00041, ISFMK00064
-
E011002 -
DELETE /company/:companyId/employee/:employeeId
-ISFMK00041, ISFMK00064
-
E011003 -
PUT /company/:companyId/employee/:employeeId
-ISFMK00064
-
F010001 -
POST /company/:companyId/file
-ISFMK00004
,ISFMK00058
,ISFMK00061右邊
-
F011001 -
GET /company/:companyId/file/:fileId
-ISFMK00058
-
F011002 -
DELETE /company/:companyId/file/:fileId
-ISFMK00058
-
I010001 -
POST /company/:companyId/invoice
-ISFMK00034
-
I011001 -
GET /company/:companyId/invoice/:invoiceId
-這支沒用到 備用(ISFMK00050)
-
I011002 -
PUT /company/:companyId/invoice/:invoiceId
-
I011003 -
GET /company/:companyId/invoice/:invoiceId/image
-ISFMK00015, ISFMK00024
-
I020001 -
GET /company/:companyId/income_expense_trend
-ISFMK00006 右上角
-
I030001 -
POST /company/:companyId/invitation
-ISFMK00005
-
J010001 -
GET /company/:companyId/journal
-ISFMK00038
-
J011001 -
GET /company/:companyId/journal/:journalId
-ISFMK00015
ISFMK00024
-
J011002 -
DELETE /company/:companyId/journal/:journalId
-ISFMK00025
-
K010001 -
POST /company/:companyId/kyc
-
L020001 -
GET /company/:companyId/labor_cost_chart
-ISFMK00006 左中
-
O011001 -
POST /company/:companyId/ocr
-
O011003 -
GET /company/:companyId/ocr
-
O011004 -
DELETE /company/:companyId/ocr/:resultId
-
O020001 -
GET /company/:companyId/order
-
O020002 -
POST /company/:companyId/order
-
P020001 -
GET /company/:companyId/project
-ISFMK00017
-
P020002 -
POST /company/:companyId/project
-
P021001 -
GET /company/:companyId/project/:projectId
-ISFMK00033, ISFMK00006
-
P021002 -
PUT /company/:companyId/project/:projectId
-ISFMK00061
-
P024001 -
GET /company/:companyId/project/:projectId/milestone
-ISFMK00033
-
P024002 -
PUT /company/:companyId/project/:projectId/milestone
-ISFMK00033
,ISFMK00061
-
P025001 -
GET /company/:companyId/project/:projectId/progress
-ISFMK00033
-
P026001 -
GET /company/:companyId/project/:projectId/sale
-ISFMK00033
-
P027001 -
GET /company/:companyId/project/:projectId/value
-ISFMK00033
-
P028001 -
GET /company/:companyId/project/:projectId/work_rate
-ISFMK00033
-
P040001 -
GET /company/:companyId/profit_comparison
-ISFMK00006 右下角
-
P050001 -
GET /company/:companyId/project_progress
-ISFMK00006 右上角
-
P070001 -
GET /company/:companyId/profit_insight
-ISFMK00006 左上角橘框
-
P080001 -
GET /company/:companyId/payment?orderId=
-
P080002 -
POST /company/:companyId/payment
-
R010001 -
POST /company/:companyId/report
-
R010002 -
GET /company/:companyId/report
-ISFMK00066
-
R011001 -
GET /company/:companyId/report/:reportId
-ISFMK00066
-
R040001 -
GET /company/:companyId/role
-ISFMK00031
,ISFMK00040
-
R040002 -
POST /company/:companyId/role
-ISFMK00040
-
R041001 -
GET /company/:companyId/role/:roleId
-ISFMK00031
,ISFMK00040
-
R041002 -
PUT /company/:companyId/role/:roleId
-ISFMK00040
-
R041003 -
DELETE /company/:companyId/role/:roleId
-ISFMK00040
-
S020001 -
GET /company/:companyId/salary
-ISFMK00067
-
S020002 -
POST /company/:companyId/salary
-ISFMK00067
-
S020003 -
PUT /company/:companyId/salary
-ISFMK00067
-
S020004 -
GET /company/:companyId/salary/:salaryId
-ISFMK00039, ISFMK00023
-
S020005 -
PUT /company/:companyId/salary/:salaryId
-ISFMK00039, ISFMK00023
-
S021001 -
POST /company/:companyId/salary/voucher
-ISFMK00075右邊
-
S022001 -
GET /company/:companyId/salary/folder
-ISFMK00078
-
S022002 -
GET /company/:companyId/salary/folder/:folderId
-ISFMK00076
-
S022003 -
PUT /company/:companyId/salary/folder/:folderId
-ISFMK00076
-
S040001 -
POST /sign-up
-ISFMK00001
[不需驗證登入] -
S050001 -
POST /sign-out
[不需驗證登入] -
S060001 -
GET /session
-ISFMK00001
[不需驗證登入] -
U010001 -
GET /user
-
U011001 -
GET /user/:userId
-ISFMK00001
,ISFMK00062
-
U011002 -
PUT /user/:userId
-ISFMK00004
,ISFMK00062
-
U012001 -
POST /user/:userId/agreement
-
U030001 -
PUT /user/:userId/invitation
-
V010001 -
POST /company/:companyId/voucher
-ISFMK00050
-
V011002 -
PUT /company/:companyId/voucher/:voucherId
-ISFMK00050右邊