@tocca-systems/twp-cli 0.37.0 → 0.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.public.md +16 -0
- package/README.md +138 -3
- package/dist/{agent-loop-SP2UKXIG.js → agent-loop-4U5RLC4L.js} +1 -1
- package/dist/{ai-dispatch-LY6OVZC3.js → ai-dispatch-KRMDHQEF.js} +1 -1
- package/dist/{api-command-NLV55HVW.js → api-command-IO572BZ4.js} +27 -11
- package/dist/{app-MED2NINK.js → app-Y2RIXLS4.js} +4 -4
- package/dist/attendance-5KE2JPK4.js +3 -0
- package/dist/{attendance-lists-F2KTIJZA.js → attendance-lists-MXQNWUIH.js} +1 -1
- package/dist/{backlog-33ELMSV6.js → backlog-67JSQYOH.js} +1 -1
- package/dist/chunk-3RAGOW6X.js +5 -0
- package/dist/chunk-4ZT5LTRX.js +94 -0
- package/dist/{chunk-R53CMVWR.js → chunk-5R4SEO3I.js} +10 -10
- package/dist/{chunk-VQMR5UTD.js → chunk-BJLXXRSY.js} +1 -1
- package/dist/{chunk-KSWRKHKU.js → chunk-C7UDUHQZ.js} +26 -24
- package/dist/{chunk-ZST7XESB.js → chunk-ELXDRPDV.js} +39 -33
- package/dist/chunk-FEOST3GF.js +3 -0
- package/dist/{chunk-WYBJLRTG.js → chunk-GPIIXDEX.js} +2 -4
- package/dist/{chunk-TAN5I2DP.js → chunk-I4ARX6NM.js} +1 -1
- package/dist/{chunk-KA3EE4TJ.js → chunk-MHRGKUMK.js} +1 -1
- package/dist/chunk-QDTYD5PY.js +147 -0
- package/dist/{chunk-4CVLBR42.js → chunk-QQLWMHGR.js} +2 -2
- package/dist/{chunk-SN6YG4SF.js → chunk-RZ54TCQU.js} +15 -14
- package/dist/chunk-TLN3JSEC.js +7 -0
- package/dist/chunk-UVUVEL3B.js +3 -0
- package/dist/{chunk-U6GEC6KI.js → chunk-Y5YDL3MC.js} +1 -1
- package/dist/cli.js +116 -9
- package/dist/{commands-OABOHHNC.js → commands-K6DQ3O35.js} +1 -1
- package/dist/{commands-M4B3MDUA.js → commands-MLYGGSUE.js} +3 -3
- package/dist/company-3KUWW7QA.js +71 -0
- package/dist/{completion-DGJH42YO.js → completion-6R5D5TQQ.js} +1 -1
- package/dist/contract-FGRHTOGI.js +86 -0
- package/dist/{department-NEDSHJJK.js → department-PN5DCCRL.js} +1 -1
- package/dist/deposit-XQER6PMG.js +4 -0
- package/dist/estimate-IXBEQVGI.js +164 -0
- package/dist/{inquiry-CUK2LWQK.js → inquiry-3VOJASJH.js} +1 -1
- package/dist/invoice-KY3BYTHQ.js +209 -0
- package/dist/{job-title-USZK3QZS.js → job-title-EM6RKGQ6.js} +1 -1
- package/dist/knowledge-F4FZ4MLH.js +112 -0
- package/dist/{leave-6UB43UT5.js → leave-D2S7NMJC.js} +2 -2
- package/dist/{media-3L4JSXC6.js → media-SQVQVX2E.js} +1 -1
- package/dist/{notification-MCABOEFM.js → notification-NTFUPUMY.js} +1 -1
- package/dist/{oneshot-RYWJ6ECA.js → oneshot-TMGTEN3S.js} +1 -1
- package/dist/{position-D7BUAIH4.js → position-D52LXRDT.js} +1 -1
- package/dist/{project-ROLQ535L.js → project-ZGOB5W25.js} +1 -1
- package/dist/{prospect-MOBECADA.js → prospect-AQ7EUU4N.js} +2 -2
- package/dist/receivable-AE44YIJO.js +49 -0
- package/dist/{registry-XXUXBYEE.js → registry-3WV46K26.js} +1 -1
- package/dist/render-MTSSHDAZ.js +3 -0
- package/dist/{report-U2ZFPO33.js → report-TI2DOJGX.js} +1 -1
- package/dist/{run-65ZPZ5FD.js → run-KNZ43HFF.js} +2 -2
- package/dist/{task-KPRX3OQX.js → task-VKVZSF7J.js} +2 -2
- package/dist/{user-VY35MTY3.js → user-KEFI7XZI.js} +2 -2
- package/dist/{workflow-5DFICP3M.js → workflow-4FHTOQZZ.js} +1 -1
- package/package.json +1 -1
- package/dist/attendance-ZWVZGVBE.js +0 -3
- package/dist/chunk-523KROGI.js +0 -3
- package/dist/chunk-6NEQ6PZZ.js +0 -3
- package/dist/chunk-R64SA5WZ.js +0 -6
- package/dist/company-DH4H6HXD.js +0 -161
- package/dist/render-W523YEYF.js +0 -3
- package/dist/sales-2WX46SHN.js +0 -4
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{readBody}from"./chunk-HGTG5XQ7.js";import{featureLicenseGuidance,invoiceFilters,invoiceReadOperations,licenseForbidden}from"./chunk-RZ54TCQU.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{booleanText,isoDate}from"./chunk-UDPJ2IGK.js";import{SALES_INVOICES_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,isExactNumericId,resolveNamed}from"./chunk-ELXDRPDV.js";import{ApiError}from"./chunk-IF2K4PM5.js";import"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";
|
|
4
|
+
import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-ZN5EFDH7.js";import{acknowledgement,isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";
|
|
5
|
+
import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";var PATH=SALES_INVOICE_AUTO_TEMPLATES_PATH;var HISTORY_SEARCH_PATH="/api/v2/sales/invoice-auto-issue-histories";var FORMATS_PATH="/api/v2/sales/estimate-formats";function adminForbidden(body){return body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3068\u767A\u884C\u5C65\u6B74\u306F\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u6271\u3048\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}
|
|
6
|
+
var CONTENT_KEYS=["template_name","estimate_format_id","interval_months","next_issue_date","period_start_date","period_end_date","payment_term_months","payment_term_day","estimate_expiration_months","estimate_expiration_day","order_acceptance_months","order_acceptance_day","invoice_date_months","invoice_date_day","estimate_business_place_id","estimate_seal_impression_id","invoice_business_place_id","invoice_seal_impression_id","company_id","project_id","payee_id","estimate_user_id","invoice_user\
|
|
7
|
+
_id","detail","memo","template_memo","notification_user_ids","estimate_manage_content","invoice_manage_content","is_active"];var DETAIL_KEYS=["list"];var DETAIL_ROW_KEYS=["title","price","quantity","unit","tax","delivery_date"];var NOT_SAVED_KEYS=["period_start_months","period_start_day","period_end_months","period_end_day"];var FIELD_NOTES=[["template_name","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D\uFF08255 \u6587\u5B57\u307E\u3067\uFF09"],["estimate_format\
|
|
8
|
+
_id","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E ID\uFF08\u6574\u6570\uFF09"],["company_id","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u53D6\u5F15\u5148\u306E ID\uFF08\u6574\u6570\u3002twp company list \u306E id\uFF09"],["interval_months","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u767A\u884C\u5468\u671F\uFF081\u301C12 \u304B\u6708\uFF09"],["next_issue_date","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u6B21\u56DE\u767A\u884C\u65E5\uFF08YYYY-MM-DD\uFF09\u3002\u767A\u884C\u306E\u305F\u3073\u306B\u300C\u767A\u884C\u65E5\uFF0B\u5468\u671F\u300D\u3078\u9032\u307F\u307E\u3059"],
|
|
9
|
+
["period_start_date / period_end_date","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u81EA\u52D5\u767A\u884C\u3059\u308B\u671F\u9593\uFF08YYYY-MM-DD\u3002\u7D42\u4E86\u306F\u958B\u59CB\u4EE5\u964D\uFF09"],["payment_term_months / payment_term_day","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u652F\u6255\u671F\u9650\uFF1D\u767A\u884C\u65E5\u306E\u4F55\u304B\u6708\u5F8C\uFF080\u301C12\uFF09\u306E\u4F55\u65E5\uFF081\u301C31\uFF09"],["estimate_expiration_* / order_acceptance_* / invoice_date_*","\u898B\u7A4D\u6709\u52B9\u671F\u9650\u30FB\u53D7\u6CE8\u65E5\u30FB\u8ACB\u6C42\u65E5\u306E\u300C\u4F55\u304B\u6708\
|
|
10
|
+
\u5F8C\uFF080\u301C12\uFF09\u306E\u4F55\u65E5\uFF081\u301C31\uFF09\u300D\uFF08null \u3067\u672A\u8A2D\u5B9A\uFF09"],["estimate_business_place_id / estimate_seal_impression_id","\u898B\u7A4D\u306E\u4E8B\u696D\u6240\u30FB\u5370\u5F71\u306E ID\uFF08\u6574\u6570\uFF09"],["invoice_business_place_id / invoice_seal_impression_id / payee_id","\u8ACB\u6C42\u306E\u4E8B\u696D\u6240\u30FB\u5370\u5F71\u30FB\u632F\u8FBC\u5148\u306E ID\uFF08\u6574\u6570\uFF09"],["project_id","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E ID\uFF08UUID\uFF09\u3002\u767A\u884C\u3059\u308B\u898B\u7A4D\u30FB\u8ACB\u6C42\u306B\u5199\u308A\u307E\u3059"],
|
|
11
|
+
["estimate_user_id / invoice_user_id","\u898B\u7A4D\u30FB\u8ACB\u6C42\u306E\u62C5\u5F53\u8005\u306E\u30E6\u30FC\u30B6\u30FC ID"],["detail",'\u4F5C\u6210\u3067\u5FC5\u9808\u3002{"list": [...]} \u306E\u5F62\u3002update \u3067\u9001\u308B\u3068\u660E\u7D30\u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059'],["detail.list[].title","\u5FC5\u9808\u3002\u54C1\u540D\uFF08255 \u6587\u5B57\u307E\u3067\uFF09"],["detail.list[].price","\u5FC5\u9808\u3002\u5358\u4FA1\uFF08\u6570\u5024\uFF09"],
|
|
12
|
+
["detail.list[].quantity","\u5FC5\u9808\u3002\u6570\u91CF\uFF080 \u4EE5\u4E0A\u306E\u6570\u5024\uFF09"],["detail.list[].unit","\u5FC5\u9808\u3002set / item / unit / hour / day / month / person / person_month / person_day \u306E\u3069\u308C\u304B\uFF08\u30B5\u30FC\u30D0\u306F 20 \u6587\u5B57\u307E\u3067\u306E\u6587\u5B57\u5217\u3092\u53D7\u3051\u307E\u3059\u304C\u3001\u767A\u884C\u6642\u306B\u3053\u308C\u4EE5\u5916\u306F set \u306B\u306A\u308A\u307E\u3059\uFF09"],["detail.list[].tax",'\u5FC5\u9808\u3002"10" / "\
|
|
13
|
+
8" / "0"'],["detail.list[].delivery_date","\u7D0D\u54C1\u65E5\u306E\u6587\u5B57\u5217\uFF08255 \u6587\u5B57\u307E\u3067\uFF09"],["memo / template_memo","\u767A\u884C\u3059\u308B\u66F8\u985E\u306E\u5099\u8003\u30FB\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30E1\u30E2\uFF08\u5404 10,000 \u6587\u5B57\u307E\u3067\uFF09"],["notification_user_ids","\u767A\u884C\u3057\u305F\u3068\u304D\u306B\u901A\u77E5\u3059\u308B\u30E6\u30FC\u30B6\u30FC ID \u306E\u914D\u5217"],["estimate_manage_content / invoice_man\
|
|
14
|
+
age_content","\u767A\u884C\u3059\u308B\u898B\u7A4D\u30FB\u8ACB\u6C42\u306E\u6DFB\u4ED8\u66F8\u985E\u30FB\u96C6\u8A08\u9805\u76EE\uFF08\u753B\u9762\u304C\u4F5C\u308B\u5F62\u3002CLI \u304B\u3089\u306F\u6DFB\u4ED8\u3092\u4F5C\u308C\u307E\u305B\u3093\uFF09"],["is_active","true \u3067\u6709\u52B9\uFF08\u81EA\u52D5\u767A\u884C\u3059\u308B\uFF09/ false \u3067\u7121\u52B9\u3002\u4F5C\u6210\u3067\u7701\u304F\u3068\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\u3067\u6709\u52B9\u306B\u306A\u308A\u307E\u3059"]];var CONTENT_MAX_CHARS=1e6;
|
|
15
|
+
var LIST_COLUMNS=["id","template_name","is_active","next_issue_date","interval_months","period_start_date","period_end_date","company_name","estimate_format_name"];var GET_COLUMNS=[...LIST_COLUMNS,"project_name","payee_name"];var HISTORY_COLUMNS=["id","issue_date","status","template_id","template_name","company_name","estimate_no","invoice_no","error_message"];var HISTORY_STATUSES={success:"\u767A\u884C\u6E08",error:"\u5931\u6557",skipped:"\u30B9\u30AD\u30C3\u30D7"};var CONTENT_FILE_FLAG={name:"\
|
|
16
|
+
--content-file",summary:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u5185\u5BB9\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var SKELETON_FLAG={name:"--generate-cli-skeleton",summary:"--content-file \u306E\u3072\u306A\u5F62\u3092\u51FA\u3057\u3066\u7D42\u4E86\u3059\u308B\uFF08\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u5909\u3048\u306A\u3044\uFF09",takesValue:false};var CONTENT_HELP="\u5185\u5BB9\uFF08--content-file\uFF09\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\
|
|
17
|
+
\u3067\u3059\u3002\u30AD\u30FC\u306F\u753B\u9762\u306E\u5165\u529B\u9805\u76EE\u3068\u540C\u3058\u540D\u524D\uFF08template_name / next_issue_date / detail \u306A\u3069\uFF09\u3067\u3001\n \u5404\u30AD\u30FC\u306B\u6E21\u305B\u308B\u5024\u306F --generate-cli-skeleton \u306E\u6CE8\u8A18\uFF08stderr\uFF09\u306B\u51FA\u307E\u3059\u3002\n \u30B5\u30FC\u30D0\u306B\u7121\u3044\u30AD\u30FC\uFF08\u6253\u3061\u9593\u9055\u3044\u3092\u542B\u3080\u3002detail \u3068 detail.list[] \u306E\u4E2D\u3082\uFF09\u306F\u3001\u9001\u308B\u524D\u306B\u3059\u3079\u3066\u6319\u3052\u3066\u6B62\u3081\u307E\u3059\n \uFF08\u30B5\u30FC\u30D0\u306F\u77E5\u3089\u306A\u3044\u30AD\u30FC\u3092\u9ED9\u3063\u3066\u6368\u3066\u308B\u305F\u3081\uFF09\u3002\u5024\u306E\u8AA4\u308A\u306F\u30B5\u30FC\u30D0\u304C 400 \u3067\u65AD\u308A\u307E\u3059\u3002--content-file - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3081\u307E\u3059\u3002";
|
|
18
|
+
var ISSUE_HELP="\u26A0\uFE0F \u6709\u52B9\uFF08is_active: true\uFF09\u306A\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u3001\u6BCE\u65E5 4:00\uFF08\u65E5\u672C\u6642\u9593\uFF09\u306E\u30D0\u30C3\u30C1\u3067\u672C\u7269\u306E\u898B\u7A4D\u3068\u8ACB\u6C42\u3092\u767A\u884C\u3057\u307E\u3059\u3002\n \u767A\u884C\u3055\u308C\u308B\u306E\u306F\u300C\u6B21\u56DE\u767A\u884C\u65E5 \u2266 \u305D\u306E\u65E5\u300D\u304B\u3064\u300C\u671F\u9593\u306E\u958B\u59CB \u2266 \u305D\u306E\u65E5 \u2266 \u671F\u9593\u306E\u7D42\u4E86\u300D\u306E\u65E5\u3067\u3001\u767A\u884C\u3059\u308B\u3068\u6B21\u56DE\u767A\u884C\u65E5\u304C\n \u300C\u767A\u884C\u65E5\uFF0B\u5468\u671F\u300D\u3078\u9032\u307F\u307E\u3059\u3002is_active \u3092\u7701\u3044\u3066\u4F5C\u308B\u3068\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\u3002\u9001\u308B\u524D\u306B\u3001\u3044\u3064\u767A\u884C\u3055\u308C\u308B\u304B\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\u3002";
|
|
19
|
+
function usageOf(op){return`twp invoice auto-template ${op} help`}function templateIdArg(input,op){const[raw,...rest]=input.args;const id=raw?.trim()??"";if(id==="")throw new UsageError("\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usageOf(op));if(rest.length>0)throw new UsageError(`\u53D7\u3051\u53D6\u308C\u308B\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E ID \u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.join(" ")}`,usageOf(
|
|
20
|
+
op));if(!isExactNumericId(id)){throw new UsageError(`\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E ID \u306F\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D\u3067\u63A2\u3059\u306A\u3089 twp invoice auto-template list --keyword <\u540D\u524D> \u306E id \u5217\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002")}return id}function templatePath(input,op){return`${PATH}/${templateIdArg(input,op)}`}function noArgs(input,op){if(input.
|
|
21
|
+
args.length>0)throw new UsageError(`${op} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usageOf(op))}function envelope(body,what){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}function dataOf(body,what){const data=envelope(body,what)["data"];if(!isRecord(
|
|
22
|
+
data)||typeof data["id"]!=="string"){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return data}function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function describeTemplate(template){
|
|
23
|
+
const parts=[text(template["company_name"]),template["is_active"]===true?"\u6709\u52B9":template["is_active"]===false?"\u7121\u52B9":"",text(template["next_issue_date"])===""?"":`\u6B21\u56DE\u767A\u884C\u65E5 ${text(template["next_issue_date"])}`].filter(part=>part!=="");return`ID ${text(template["id"])}\u300C${text(template["template_name"])}\u300D${parts.length>0?`\uFF08${parts.join("\u30FB")}\uFF09`:""}`}function jstParts(now){const date=new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Tokyo"}).
|
|
24
|
+
format(now);const hour=Number(new Intl.DateTimeFormat("en-US",{timeZone:"Asia/Tokyo",hour:"2-digit",hourCycle:"h23"}).format(now));return{date,hour}}function addDays(date,days){const[y,m,d]=date.split("-").map(Number);return new Date(Date.UTC(y,m-1,d+days)).toISOString().slice(0,10)}var DATE_RE=/^\d{4}-\d{2}-\d{2}$/;function dateOf(value){return typeof value==="string"&&DATE_RE.test(value.slice(0,10))?value.slice(0,10):void 0}function activeOf(value){if(value===true||value===1||value==="1")return true;
|
|
25
|
+
if(value===false||value===0||value==="0")return false;return void 0}function issuanceNotes(state,now=new Date,defaultedActive=false){const active=defaultedActive?true:activeOf(state.is_active);if(active===false)return["\u7121\u52B9\uFF08is_active: false\uFF09\u306A\u306E\u3067\u3001\u81EA\u52D5\u767A\u884C\u3055\u308C\u307E\u305B\u3093"];if(active===void 0)return["is_active \u306E\u5024\u306F\u30B5\u30FC\u30D0\u304C\u5224\u5B9A\u3057\u307E\u3059\uFF08true / false \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002\u767A\u884C\u306E\u898B\u8FBC\u307F\u306F\u51FA\u3057\u307E\u305B\u3093"];
|
|
26
|
+
const next=dateOf(state.next_issue_date);const start=dateOf(state.period_start_date);const end=dateOf(state.period_end_date);const activeNote=defaultedActive?"is_active \u3092\u7701\u3044\u305F\u306E\u3067\u3001\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\u3067\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\u3002":"\u6709\u52B9\u3067\u3059\u3002";if(next===void 0||start===void 0||end===void 0){return[`\u26A0\uFE0F ${activeNote}\u6B21\u56DE\u767A\u884C\u65E5\u3068\u671F\u9593\u304C\u63C3\u3046\u3068\u3001\u6BCE\u65E5 4:00\uFF08\u65E5\u672C\u6642\u9593\uFF09\u306E\u30D0\u30C3\u30C1\u3067\u898B\u7A4D\u3068\u8ACB\u6C42\u304C\u767A\u884C\u3055\u308C\u307E\u3059`]}
|
|
27
|
+
const{date:today,hour}=jstParts(now);const firstRun=hour<4?today:addDays(today,1);const first=[next,start,firstRun].sort().at(-1);if(first>end){return[`${activeNote}\u305F\u3060\u3057\u6700\u521D\u306B\u767A\u884C\u3067\u304D\u308B\u65E5\uFF08${first}\uFF09\u304C\u671F\u9593\u306E\u7D42\u4E86\uFF08${end}\uFF09\u3088\u308A\u5F8C\u306A\u306E\u3067\u3001\u3053\u306E\u307E\u307E\u3067\u306F\u767A\u884C\u3055\u308C\u307E\u305B\u3093`]}const soon=first===firstRun;const interval=typeof state.interval_months===
|
|
28
|
+
"number"?`\uFF08\u4EE5\u5F8C\u306F ${state.interval_months} \u304B\u6708\u3054\u3068\uFF09`:"";return[`${soon?"\u26A0\uFE0F ":""}${activeNote}${first} \u306E 4:00\uFF08\u65E5\u672C\u6642\u9593\uFF09\u306E\u30D0\u30C3\u30C1\u3067\u898B\u7A4D\u3068\u8ACB\u6C42\u304C\u767A\u884C\u3055\u308C\u307E\u3059${interval}\u3002\u671F\u9593\u306F ${start}\u301C${end}`,...soon?[" \u6B21\u306E\u30D0\u30C3\u30C1\u3067\u767A\u884C\u3055\u308C\u307E\u3059\u3002\u767A\u884C\u3055\u305B\u306A\u3044\u306A\u3089 is_active: false \u306B\u3057\u3066\u304F\u3060\u3055\u3044"]:
|
|
29
|
+
[],...hour===4&&first===firstRun&&next<=today&&start<=today?[` \u3044\u307E\u306F 4 \u6642\u53F0\u306A\u306E\u3067\u3001\u4ECA\u65E5\uFF08${today}\uFF09\u306E\u30D0\u30C3\u30C1\u304C\u307E\u3060\u51E6\u7406\u4E2D\u306A\u3089\u4ECA\u65E5\u306E\u3046\u3061\u306B\u767A\u884C\u3055\u308C\u308B\u3053\u3068\u3082\u3042\u308A\u307E\u3059`]:[]]}var LIST_FILTER_FLAGS=[{name:"--keyword",summary:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D\u30FB\u30E1\u30E2\u306E\u8A9E\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u90E8\u5206\u4E00\u81F4\uFF09",
|
|
30
|
+
takesValue:true,placeholder:"<\u8A9E>"},{name:"--active",summary:"\u6709\u52B9\uFF08true\uFF09\u304B\u7121\u52B9\uFF08false\uFF09\u304B\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<true|false>"},{name:"--customer",summary:"\u53D6\u5F15\u5148\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u4F01\u696D\u540D\u30FB\u7565\u79F0\u30FB\u30AB\u30CA\u306E\u5B8C\u5168\u4E00\u81F4\u304B ID\uFF09",takesValue:true,placeholder:"<\u53D6\u5F15\u5148>"}];function activeFlag(input){const raw=nonEmpty(input.flags,
|
|
31
|
+
"--active");return raw===void 0?void 0:booleanText("--active",raw)}function listQuery(input){const{page_no,page_limit}=pageNumberQuery(input);const active=activeFlag(input);return{keyword:nonEmpty(input.flags,"--keyword"),is_active:active===void 0?void 0:active?1:0,company_id:input.resolved?.["customer"],...STABLE_PAGE_ORDER,page_limit,page_no}}var listPaging=pageNumberPaging({label:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4E00\u89A7"});var historyPaging=pageNumberPaging({label:"\
|
|
32
|
+
\u81EA\u52D5\u767A\u884C\u5C65\u6B74"});function totalsNote(body){if(!isRecord(body))return[];const sum=body["sum"];return[...pageRangeNotes(body),...typeof sum==="number"?[`\u8A72\u5F53 ${sum} \u4EF6`]:[]]}var listOperation={name:"list",summary:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u4E00\u89A7\u3059\u308B\uFF08\u767B\u9332\u306E\u65B0\u3057\u3044\u9806\uFF09",usage:"twp invoice auto-template list [--keyword <\u8A9E>] [--active <true|false>] [--customer <\u53D6\u5F15\u5148>] [--all] [-\
|
|
33
|
+
-limit <\u4EF6\u6570>]",description:`\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\uFF08\u5B9A\u671F\u7684\u306B\u898B\u7A4D\u3068\u8ACB\u6C42\u3092\u81EA\u52D5\u767A\u884C\u3059\u308B\u8A2D\u5B9A\uFF09\u3092\u4E00\u89A7\u3057\u307E\u3059\u3002\u8CA9\u58F2\u7BA1\u7406\u306E\u300C\u7BA1\u7406\u8005\u300D\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\u3002
|
|
34
|
+
\u6B21\u306B\u767A\u884C\u3055\u308C\u308B\u65E5\u306F next_issue_date\u3001\u6709\u52B9\u304B\u3069\u3046\u304B\u306F is_active \u3067\u3059\u3002
|
|
35
|
+
|
|
36
|
+
--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
|
|
37
|
+
--output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${LIST_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
|
|
38
|
+
|
|
39
|
+
`+LIST_PAGING_HELP+"\n"+PAGE_NUMBER_PAGING_HELP,flags:[...PAGE_NUMBER_LIST_FLAGS,...LIST_FILTER_FLAGS],paging:listPaging,forbidden:adminForbidden,async prepare(input,ctx){noArgs(input,"list");listQuery(input);const customer=nonEmpty(input.flags,"--customer");if(customer===void 0)return input;return withResolved(input,{customer:(await ctx.resolver.company(customer,{flag:"--customer",source:"sales",mustExist:true})).id})},plan:input=>({method:"GET",path:PATH,query:listQuery(input)}),summarize:body=>listPaging.
|
|
40
|
+
items(envelope(body,"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4E00\u89A7")).map(row=>pick(row,LIST_COLUMNS)),raw:body=>listPaging.items(envelope(body,"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4E00\u89A7")),notes:totalsNote};var getOperation={name:"get",summary:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C81\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",usage:"twp invoice auto-template get <\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8ID>",
|
|
41
|
+
description:"ID \u306F twp invoice auto-template list \u306E id \u5217\u306E\u6570\u5B57\u3067\u3059\u3002--output json \u306F\u660E\u7D30 detail \u3092\u542B\u3080\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002",flags:[],forbidden:adminForbidden,plan:input=>({method:"GET",path:templatePath(input,"get")}),summarize:body=>pick(dataOf(body,"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8"),GET_COLUMNS),raw:body=>dataOf(body,"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8"),
|
|
42
|
+
notes:body=>issuanceNotes(dataOf(body,"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8")).map(line=>line.replace(/^⚠️ /,""))};function parseTemplateContent(textBody,source,mode){let parsed;try{parsed=JSON.parse(textBody)}catch{throw new UsageError(`\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u5185\u5BB9\u304C JSON \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093\uFF08${source}\uFF09`,CONTENT_HELP)}if(!isRecord(parsed))throw new UsageError(`\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u5185\u5BB9\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\
|
|
43
|
+
\uFF09`,CONTENT_HELP);const problems=Object.keys(parsed).filter(key=>!CONTENT_KEYS.includes(key)).map(key=>NOT_SAVED_KEYS.includes(key)?`${key}\uFF08\u753B\u9762\u306B\u3042\u308B\u9805\u76EE\u3067\u3059\u304C\u3001\u30B5\u30FC\u30D0\u304C\u4FDD\u5B58\u3057\u307E\u305B\u3093\uFF09`:key);const detail=parsed["detail"];if(detail!==void 0&&detail!==null){if(!isRecord(detail))throw new UsageError(`detail \u306F {"list": [...]} \u306E\u5F62\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\
|
|
44
|
+
\uFF09`,CONTENT_HELP);for(const key of Object.keys(detail))if(!DETAIL_KEYS.includes(key))problems.push(`detail.${key}`);const list=detail["list"];if(list!==void 0&&list!==null){if(!Array.isArray(list))throw new UsageError(`detail.list \u306F\u914D\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\uFF09`,CONTENT_HELP);list.forEach((row,index)=>{if(!isRecord(row)){problems.push(`detail.list[${index}] \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);
|
|
45
|
+
return}for(const name of Object.keys(row))if(!DETAIL_ROW_KEYS.includes(name))problems.push(`detail.list[${index}].${name}`)})}}if(problems.length>0){throw new UsageError(`\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u5185\u5BB9\u306B\u9001\u308C\u306A\u3044\u9805\u76EE\u304C\u3042\u308A\u307E\u3059\uFF08${source}\uFF09: ${problems.join(", ")}`,`\u9001\u308C\u308B\u9805\u76EE\u306F twp invoice auto-template ${mode} --generate-cli-skeleton \u306E\u6CE8\u8A18\u306B\u4E26\u3073\u307E\u3059\u3002`)}if(mode===
|
|
46
|
+
"update"&&Object.keys(parsed).length===0){throw new UsageError(`\u66F8\u304D\u63DB\u3048\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093\uFF08${source} \u304C\u7A7A\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3059\uFF09`,usageOf("update"))}return parsed}function fieldNotes(){return["\u9001\u308C\u308B\u9805\u76EE\u3068\u5024\u306E\u6C7A\u307E\u308A\uFF08\u30B5\u30FC\u30D0\u306E\u691C\u67FB\u306E\u5199\u3057\uFF09:",...FIELD_NOTES.map(([key,note])=>` ${key}: ${note}`)]}function formatsOf(body){
|
|
47
|
+
const list=isRecord(body)?body["list"]:void 0;if(!isRecord(body)||body["result"]!==true||!Array.isArray(list)||!list.every(isRecord)){throw new ApiResponseError("\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return list}function createSkeleton(body,now=new Date){const formats=formatsOf(body);const pageSum=isRecord(body)?
|
|
48
|
+
body["page_sum"]:void 0;const only=formats.length===1&&!(typeof pageSum==="number"&&pageSum>1)?formats[0]:void 0;const{date:today}=jstParts(now);return{template_name:"",estimate_format_id:only?.["id"]??null,company_id:null,project_id:null,interval_months:1,next_issue_date:addDays(today,1),period_start_date:addDays(today,1),period_end_date:addDays(today,365),payment_term_months:1,payment_term_day:31,invoice_user_id:null,detail:{list:[{title:"",price:0,quantity:1,unit:only?.["default_unit"]??"set",
|
|
49
|
+
tax:only?.["default_tax_rate"]??"10"}]},memo:null,notification_user_ids:[],is_active:false}}function createSkeletonNotes(body){const formats=formatsOf(body);const lines=formats.length===0?["\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u753B\u9762\u3067\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u4F5C\u3063\u3066\u304B\u3089 estimate_format_id \u306B\u5165\u308C\u3066\u304F\u3060\u3055\u3044"]:formats.length===1?[`\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306F\u300C${text(
|
|
50
|
+
formats[0]?.["format_name"])}\u300D\u3060\u3051\u306A\u306E\u3067\u3001\u305D\u308C\u3092\u5165\u308C\u307E\u3057\u305F`]:["estimate_format_id \u306B\u6B21\u306E\u3069\u308C\u304B\u306E id \u3092\u5165\u308C\u3066\u304F\u3060\u3055\u3044\uFF08\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\uFF09:",...formats.map(row=>` ${text(row["id"])}: ${text(row["format_name"])}`)];const pageSum=isRecord(body)?body["page_sum"]:void 0;if(typeof pageSum==="number"&&pageSum>1)lines.push(` \uFF08\u5148\u982D ${formats.
|
|
51
|
+
length} \u4EF6\u3060\u3051\u3092\u51FA\u3057\u3066\u3044\u307E\u3059\u3002\u6B8B\u308A\u306F twp api /api/v2/sales/estimate-formats\uFF09`);return[...lines,"template_name\u30FBcompany_id\u30FBdetail.list[].title / price \u3092\u57CB\u3081\u3066\u304B\u3089 twp invoice auto-template create --content-file <\u30D1\u30B9> \u3067\u4F5C\u308A\u307E\u3059","\u3072\u306A\u5F62\u306F is_active: false\uFF08\u7121\u52B9\uFF09\u3067\u3059\u3002\u81EA\u52D5\u767A\u884C\u3055\u305B\u308B\u3068\u304D\u306B true \u306B\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
52
|
+
...fieldNotes()]}function updateSkeleton(template){const out={};for(const key of CONTENT_KEYS){if(!(key in template))continue;const value=template[key];if(key==="detail"&&isRecord(value)){const list=Array.isArray(value["list"])?value["list"].filter(isRecord).map(row=>pick(row,DETAIL_ROW_KEYS)):[];out[key]={list}}else{out[key]=value}}return out}function writeResult(value){if(!isRecord(value)||typeof value["skeleton"]!=="boolean"){throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: auto-template \u306E\u5FDC\u7B54\u306B\u5370\u304C\u3042\u308A\u307E\u305B\u3093\uFF08execute \u306E\u914D\u7DDA\u6F0F\u308C\uFF09")}
|
|
53
|
+
return value}function contentOf(input){return JSON.parse(requireResolved(input,"body"))}function createPlan(input){if(input.flags.has(SKELETON_FLAG.name))return{method:"GET",path:FORMATS_PATH,query:{page_limit:100,page_no:1}};return{method:"POST",path:PATH,body:contentOf(input)}}function updatePlan(input){const target=templatePath(input,"update");if(input.flags.has(SKELETON_FLAG.name))return{method:"GET",path:target};return{method:"PUT",path:target,body:contentOf(input)}}async function prepareContent(input,ctx,mode){
|
|
54
|
+
const wantsSkeleton=input.flags.has(SKELETON_FLAG.name);if(wantsSkeleton&&input.flags.has(CONTENT_FILE_FLAG.name)){throw new UsageError("--generate-cli-skeleton \u3068 --content-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usageOf(mode))}if(wantsSkeleton)return input;const body=await readBody(input,{flag:"--content",fileFlag:CONTENT_FILE_FLAG.name,label:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u5185\u5BB9",maxChars:CONTENT_MAX_CHARS,usage:usageOf(mode)});if(body===
|
|
55
|
+
void 0){throw new UsageError("\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u5185\u5BB9\u3092 --content-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`\u3072\u306A\u5F62\u306F twp invoice auto-template ${mode}${mode==="update"?" <\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8ID>":""} --generate-cli-skeleton \u3067\u51FA\u305B\u307E\u3059\u3002`)}const content=parseTemplateContent(body,`${CONTENT_FILE_FLAG.name} ${input.flags.get(CONTENT_FILE_FLAG.name)??""}`,mode);const resolved={
|
|
56
|
+
body:JSON.stringify(content)};if(mode==="update"){resolved["current"]=JSON.stringify(await ctx.resolver.salesRecord("invoice-auto-template",templateIdArg(input,"update"),"<\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8ID>"))}return withResolved(input,resolved)}function writeNotes(input,mode){const content=contentOf(input);const notes=[];if(mode==="update"&&isRecord(content["detail"]))notes.push("\u660E\u7D30\uFF08detail.list\uFF09\u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u9001\u3063\u305F\u884C\u3060\u3051\u304C\u6B8B\u308A\u307E\u3059\uFF09");
|
|
57
|
+
if(mode==="create")return[...notes,...issuanceNotes(content,new Date,!("is_active"in content))];const current=JSON.parse(requireResolved(input,"current"));return[...notes,...issuanceNotes({...current,...content})]}var createOperation={name:"create",summary:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u4F5C\u6210\u3059\u308B\uFF08\u5185\u5BB9\u306F --content-file \u306E JSON\uFF09",usage:"twp invoice auto-template create (--content-file <\u30D1\u30B9> | --generate-cli-skeleton)",
|
|
58
|
+
description:`POST /api/v2/sales/invoice-auto-templates \u3067\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u4F5C\u308A\u307E\u3059\u3002\u8CA9\u58F2\u7BA1\u7406\u306E\u300C\u7BA1\u7406\u8005\u300D\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\u3002
|
|
59
|
+
|
|
60
|
+
${ISSUE_HELP}
|
|
61
|
+
|
|
62
|
+
${CONTENT_HELP}
|
|
63
|
+
|
|
64
|
+
--generate-cli-skeleton \u306F\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u4E00\u89A7\uFF08GET /api/v2/sales/estimate-formats\uFF09\u3092\u8AAD\u307F\u3001\u7121\u52B9\uFF08is_active: false\uFF09\u306E
|
|
65
|
+
\u3072\u306A\u5F62\u3092\u6A19\u6E96\u51FA\u529B\u3078\u51FA\u3057\u3066\u7D42\u4E86\u3057\u307E\u3059\u3002
|
|
66
|
+
\u4F8B: twp invoice auto-template create --generate-cli-skeleton --output json > template.json`,flags:[CONTENT_FILE_FLAG,SKELETON_FLAG],forbidden:adminForbidden,async prepare(input,ctx){noArgs(input,"create");return prepareContent(input,ctx,"create")},plan:createPlan,plannedNotes:input=>input.flags.has(SKELETON_FLAG.name)?["\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u4E00\u89A7\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u4F5C\u308A\u307E\u305B\u3093"]:
|
|
67
|
+
writeNotes(input,"create"),execute:async(input,ctx)=>({skeleton:input.flags.has(SKELETON_FLAG.name),body:await ctx.send(createPlan(input))}),summarize(value){const result=writeResult(value);return result.skeleton?createSkeleton(result.body):pick(dataOf(result.body,"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u4F5C\u6210"),GET_COLUMNS)},raw(value){const result=writeResult(value);return result.skeleton?createSkeleton(result.body):dataOf(result.body,"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u4F5C\u6210")},
|
|
68
|
+
notes(value){const result=writeResult(value);return result.skeleton?createSkeletonNotes(result.body):serverMessage(result.body)}};var updateOperation={name:"update",summary:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u66F8\u304D\u63DB\u3048\u308B\uFF08\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u3044\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308B\uFF09",usage:"twp invoice auto-template update <\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8ID> (--content-file <\u30D1\u30B9> | --generate-cli-skeleton)",
|
|
69
|
+
description:`PUT /api/v2/sales/invoice-auto-templates/{id} \u3067\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u66F8\u304D\u63DB\u3048\u307E\u3059\u3002\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u3044\u305F\u30AD\u30FC\u3060\u3051\u3092\u9001\u308A\u307E\u3059\u3002
|
|
70
|
+
\u26A0\uFE0F detail\uFF08\u660E\u7D30\uFF09\u306F\u3001\u9001\u308B\u3068\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\u3002\u767A\u884C\u3092\u6B62\u3081\u308B\u306B\u306F {"is_active": false} \u3092\u9001\u308A\u307E\u3059\u3002
|
|
71
|
+
\u9001\u308B\u524D\u306B\u4ECA\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u8AAD\u307F\u3001\u66F8\u304D\u63DB\u3048\u305F\u5F8C\u306B\u3044\u3064\u767A\u884C\u3055\u308C\u308B\u304B\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002
|
|
72
|
+
|
|
73
|
+
${ISSUE_HELP}
|
|
74
|
+
|
|
75
|
+
${CONTENT_HELP}
|
|
76
|
+
|
|
77
|
+
--generate-cli-skeleton \u306F\u4ECA\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304B\u3089\u66F8\u304D\u8FBC\u3081\u308B\u30AD\u30FC\u3060\u3051\u3092\u6B8B\u3057\u3066\u51FA\u3057\u307E\u3059\u3002`,flags:[CONTENT_FILE_FLAG,SKELETON_FLAG],forbidden:adminForbidden,async prepare(input,ctx){templateIdArg(input,"update");return prepareContent(input,ctx,"update")},plan:updatePlan,plannedNotes:input=>input.flags.has(SKELETON_FLAG.name)?["\u4ECA\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u66F8\u304D\u63DB\u3048\u307E\u305B\u3093"]:
|
|
78
|
+
writeNotes(input,"update"),execute:async(input,ctx)=>({skeleton:input.flags.has(SKELETON_FLAG.name),body:await ctx.send(updatePlan(input))}),summarize(value){const result=writeResult(value);return result.skeleton?updateSkeleton(dataOf(result.body,"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8")):pick(dataOf(result.body,"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u66F4\u65B0"),GET_COLUMNS)},raw(value){const result=writeResult(value);return result.skeleton?updateSkeleton(dataOf(result.body,"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8")):
|
|
79
|
+
dataOf(result.body,"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u66F4\u65B0")},notes(value){const result=writeResult(value);return result.skeleton?["\u4ECA\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u3001\u66F8\u304D\u8FBC\u3081\u308B\u9805\u76EE\u3060\u3051\u3092\u51FA\u3057\u307E\u3057\u305F\u3002\u5909\u3048\u306A\u3044\u9805\u76EE\u306F\u6D88\u3057\u3066\u304B\u3089 --content-file \u3067\u9001\u3063\u3066\u304F\u3060\u3055\u3044",...fieldNotes()]:serverMessage(result.body)}};var deleteOperation={
|
|
80
|
+
name:"delete",summary:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",usage:"twp invoice auto-template delete <\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8ID> --yes",description:"DELETE /api/v2/sales/invoice-auto-templates/{id} \u3067\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306F\u8AD6\u7406\u524A\u9664\u3067\u3001\u4EE5\u5F8C\u306F\u767A\u884C\u3055\u308C\u307E\u305B\u3093\uFF09\u3002\n\u3053\u308C\u307E\u3067\u306B\u767A\u884C\u3057\u305F\u898B\u7A4D\u30FB\u8ACB\u6C42\u3068\u767A\u884C\u5C65\u6B74\u306F\u6B8B\u308A\u307E\u3059\u3002\u9001\u308B\u524D\u306B\u5BFE\u8C61\u3092\u8AAD\u307F\u3001stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002",
|
|
81
|
+
destructive:true,flags:[],forbidden:adminForbidden,async prepare(input,ctx){const template=await ctx.resolver.salesRecord("invoice-auto-template",templateIdArg(input,"delete"),"<\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8ID>");return withResolved(input,{template:JSON.stringify(template)})},plan:input=>({method:"DELETE",path:templatePath(input,"delete")}),plannedNotes:input=>[`\u524A\u9664\u3059\u308B\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8: ${describeTemplate(JSON.parse(requireResolved(
|
|
82
|
+
input,"template")))}`,"\u767A\u884C\u6E08\u307F\u306E\u898B\u7A4D\u30FB\u8ACB\u6C42\u3068\u767A\u884C\u5C65\u6B74\u306F\u6D88\u3048\u307E\u305B\u3093"],summarize:body=>acknowledgement(body,"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u524A\u9664"),raw:body=>acknowledgement(body,"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u524A\u9664")};var ALL_TEMPLATES_FLAG={name:"--all-templates",summary:"\u5168\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u767A\u884C\u5C65\u6B74\u3092\u691C\u7D22\u3059\u308B\uFF08\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 ID \u306E\u4EE3\u308F\u308A\uFF09",
|
|
83
|
+
takesValue:false};var HISTORY_FILTER_FLAGS=[{name:"--status",summary:"\u7D50\u679C\u3067\u7D5E\u308A\u8FBC\u3080\uFF08success\uFF1D\u767A\u884C\u6E08 / error\uFF1D\u5931\u6557 / skipped\uFF1D\u30B9\u30AD\u30C3\u30D7\u30FB\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\uFF09",takesValue:true,placeholder:"<\u7D50\u679C>",repeatable:true},{name:"--from",summary:"\u767A\u884C\u65E5\u304C\u3053\u306E\u65E5\u4EE5\u964D\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<\u65E5\u4ED8>"},{name:"--to",
|
|
84
|
+
summary:"\u767A\u884C\u65E5\u304C\u3053\u306E\u65E5\u4EE5\u524D\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<\u65E5\u4ED8>"}];function hasHistoryFilters(input){return repeatedValues(input,"--status").length>0||input.flags.has("--from")||input.flags.has("--to")}function historyPlan(input){const{page_no,page_limit}=pageNumberQuery(input);const all=input.flags.has(ALL_TEMPLATES_FLAG.name);if(!all&&!hasHistoryFilters(input)){return{method:"GET",path:`${templatePath(input,"history")}/historie\
|
|
85
|
+
s`,query:{page_limit,page_no}}}return{method:"GET",path:HISTORY_SEARCH_PATH,query:{template_id:all?void 0:templateIdArg(input,"history"),issue_date_from:isoDate(input,"--from"),issue_date_to:isoDate(input,"--to"),status_list:input.resolved?.["status"],sort_column:"issue_date",sort_direction:"desc",page_limit,page_no}}}function historyRows(body){return historyPaging.items(envelope(body,"\u81EA\u52D5\u767A\u884C\u5C65\u6B74"))}var historyOperation={name:"history",summary:"\u81EA\u52D5\u767A\u884C\u306E\u5C65\u6B74\u3092\u4E00\u89A7\u3059\u308B\uFF08<\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8ID> \u304B\
|
|
86
|
+
--all-templates\uFF09",usage:"twp invoice auto-template history (<\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8ID> | --all-templates) [--status <\u7D50\u679C>]... [--from <\u65E5\u4ED8>] [--to <\u65E5\u4ED8>] [--all] [--limit <\u4EF6\u6570>]",description:`\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u898B\u7A4D\u30FB\u8ACB\u6C42\u3092\u767A\u884C\u3057\u305F\u8A18\u9332\u3092\u4E00\u89A7\u3057\u307E\u3059\uFF08\u767A\u884C\u65E5\u306E\u65B0\u3057\u3044\u9806\uFF09\u3002
|
|
87
|
+
<\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8ID> \u3092\u6E21\u3059\u3068\u305D\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u5C65\u6B74\uFF08GET \u2026/invoice-auto-templates/{id}/histories\uFF09\u3001
|
|
88
|
+
--all-templates \u306A\u3089\u5168\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u6A2A\u65AD\u3057\u3066\u691C\u7D22\u3057\u307E\u3059\uFF08GET /api/v2/sales/invoice-auto-issue-histories\uFF09\u3002
|
|
89
|
+
--status / --from / --to \u3092\u4ED8\u3051\u308B\u3068\u6A2A\u65AD\u691C\u7D22\u3092\u4F7F\u3044\u3001ID \u304C\u3042\u308C\u3070\u305D\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306B\u7D5E\u308A\u307E\u3059\u3002\u4EF6\u6570\u306E\u7D71\u8A08\u306F stderr \u306B\u51FA\u307E\u3059\u3002
|
|
90
|
+
\u524A\u9664\u3057\u305F\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u5C65\u6B74\u306F\u3001ID \u3067\u306F\u5F15\u3051\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C\u524A\u9664\u6E08\u307F\u3092\u898B\u3064\u304B\u3089\u306A\u3044\u3068\u8FD4\u3059\u305F\u3081\uFF09\u3002
|
|
91
|
+
--all-templates \u3067\u5F15\u304D\u3001template_id \u306E\u5217\u3067\u8AAD\u3093\u3067\u304F\u3060\u3055\u3044\uFF08template_name \u306F\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF09\u3002
|
|
92
|
+
|
|
93
|
+
--output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${HISTORY_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
|
|
94
|
+
|
|
95
|
+
`+LIST_PAGING_HELP,flags:[...PAGE_NUMBER_LIST_FLAGS,ALL_TEMPLATES_FLAG,...HISTORY_FILTER_FLAGS],paging:historyPaging,forbidden:adminForbidden,async prepare(input,ctx){const all=input.flags.has(ALL_TEMPLATES_FLAG.name);if(all&&input.args.length>0)throw new UsageError("--all-templates \u3068\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 ID \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usageOf("history"));if(!all&&input.args.length===0){throw new UsageError("\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 ID \u304B --all-templates \
|
|
96
|
+
\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","\u5168\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u5C65\u6B74\u306F twp invoice auto-template history --all-templates \u3067\u5F15\u3051\u307E\u3059\u3002")}const refs=Object.entries(HISTORY_STATUSES).map(([code,name])=>({id:code,name,code}));const codes=[];for(const raw of repeatedValues(input,"--status")){const ref=await resolveNamed(raw,refs,{flag:"--status",label:"\u767A\u884C\u306E\u7D50\u679C",scope:"\u3053\u306E CLI"});if(!codes.includes(
|
|
97
|
+
ref.id))codes.push(ref.id)}const withStatus=codes.length>0?withResolved(input,{status:codes.join(",")}):input;historyPlan(withStatus);if(!all&&hasHistoryFilters(input))await ctx.resolver.salesRecord("invoice-auto-template",templateIdArg(input,"history"),"<\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8ID>");return withStatus},plan:historyPlan,summarize:body=>historyRows(body).map(row=>{const picked=pick(row,HISTORY_COLUMNS);const status=isRecord(row)?row["status"]:void 0;return typeof status==="string"?{...picked,
|
|
98
|
+
status:`${status}\uFF08${HISTORY_STATUSES[status]??status}\uFF09`}:picked}),raw:historyRows,notes(body){const stats=isRecord(body)?body["statistics"]:void 0;return[...totalsNote(body),...isRecord(stats)?[`\u767A\u884C\u6E08 ${text(stats["success_count"])||0} \u4EF6\u30FB\u5931\u6557 ${text(stats["error_count"])||0} \u4EF6\uFF08\u7D5E\u308A\u8FBC\u307F\u5168\u4F53\uFF09`]:[]]}};var autoTemplateResource={name:"auto-template",summary:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\uFF08\u5B9A\u671F\u7684\u306B\u898B\u7A4D\u3068\u8ACB\u6C42\u3092\u81EA\u52D5\u767A\u884C\u3059\u308B\u8A2D\u5B9A\uFF09\u3068\u767A\u884C\u5C65\u6B74\u3002\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u306E\u307F",
|
|
99
|
+
operations:[listOperation,getOperation,createOperation,updateOperation,deleteOperation,historyOperation]};var PATH2=SALES_INVOICES_PATH;var SALES_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function adminForbidden2(what){return body=>body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):`${what}\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\uFF08\u7BA1\u7406\u8005\u3067\u3082\u3001\u8ACB\u6C42\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3067\u306A\u3051\u308C\u3070\u64CD\u4F5C\u3067\u304D\u307E\u305B\u3093\u3002\u7D71\u5408\u8ACB\u6C42\u66F8\u306A\u3089\u3001\u7D71\u5408\u5143\u306E\u8ACB\u6C42\u305D\u308C\u305E\u308C\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u3082\u53C2\u52A0\u3057\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF09\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}
|
|
100
|
+
var STORE_KEYS=["direct_create","estimate_format_id","contract_id","estimate_id","invoice_no_rule_id","title","company_id","project_id","invoice_user_id","business_place_id","seal_impression_id","payee_id","status","invoice_date","delivery_date","inspection_date","due_date","terms","memo","internal_memo","manage_form_data","details","recipients"];var CREATE_ONLY_KEYS=["direct_create","estimate_format_id","contract_id","estimate_id","invoice_no_rule_id"];var UPDATE_KEYS=[...STORE_KEYS.filter(key=>!CREATE_ONLY_KEYS.
|
|
101
|
+
includes(key)),"approval_comment"];var DETAIL_KEYS2=["item_name","description","quantity","unit","unit_price","tax_rate","delivery_date"];var RECIPIENT_KEYS=["customer_contact_id","recipient_type"];var FIELD_NOTES2=[["title","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u8ACB\u6C42\u4EF6\u540D\uFF08500 \u6587\u5B57\u307E\u3067\uFF09"],["project_id","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E ID\uFF08UUID\uFF09"],["invoice_date","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u8ACB\u6C42\u65E5\uFF08YYYY-MM-DD\uFF09"],
|
|
102
|
+
["invoice_no_rule_id","\u4F5C\u6210\u306E\u307F\u3002\u8ACB\u6C42\u756A\u53F7\u306E\u63A1\u756A\u30EB\u30FC\u30EB\u306E ID\uFF08\u6307\u5B9A\u3059\u308B\u3068\u756A\u53F7\u3092\u63A1\u756A\u3002\u7701\u3051\u3070\u756A\u53F7\u306A\u3057\uFF09"],["estimate_id / contract_id","\u4F5C\u6210\u306E\u307F\u3002\u7D10\u3065\u3051\u308B\u898B\u7A4D\u30FB\u5951\u7D04\u306E ID\uFF08\u6574\u6570\uFF09"],["direct_create / estimate_format_id","\u4F5C\u6210\u306E\u307F\u3002direct_create: true \u3067\u898B\u7A4D\u3092\u300C\u627F\u8A8D\u6E08\u300D\u3067\u81EA\u52D5\u4F5C\u6210\u3057\u3066\u7D10\u3065\u3051\u307E\u3059\uFF08estimate_format_id \
|
|
103
|
+
\u304C\u5FC5\u9808\uFF09"],["company_id","\u53D6\u5F15\u5148\u306E ID\uFF08\u6574\u6570\u3002twp company list \u306E id\uFF09"],["invoice_user_id","\u8ACB\u6C42\u62C5\u5F53\u8005\u306E\u30E6\u30FC\u30B6\u30FC ID"],["business_place_id / seal_impression_id / payee_id","\u4E8B\u696D\u6240\u30FB\u5370\u5F71\u30FB\u632F\u8FBC\u5148\u306E ID\uFF08\u6574\u6570\uFF09"],["status","\u4F5C\u6210\u306F new\uFF08\u4F5C\u6210\u4E2D\uFF09/ create_completed\uFF08\u4F5C\u6210\u5B8C\u4E86\uFF09\u3060\u3051\u3002\u627F\u8A8D\u7533\u8ACB\uFF08in_progress\uFF09\u306F update \u3067\u3002cancelled\uFF08\u53D6\u6D88\uFF09\u306F twp invoice cancel \u3067\u3001lost\uFF08\u5931\u6CE8\uFF09\u306F\u898B\u7A4D\u306E\u6848\u4EF6\u78BA\u5EA6\u306B\u9023\u52D5\u3057\u307E\u3059"],
|
|
104
|
+
["delivery_date / inspection_date / due_date","\u7D0D\u54C1\u65E5\u30FB\u691C\u53CE\u65E5\u30FB\u652F\u6255\u671F\u65E5\uFF08YYYY-MM-DD\uFF09"],["terms / memo","\u5099\u8003\u30FB\u30E1\u30E2\uFF08\u6587\u5B57\u5217\u3002\u8ACB\u6C42\u66F8 PDF \u306E\u300C\u5099\u8003\u300D\u306F memo\uFF09"],["internal_memo","\u793E\u5185\u5171\u6709\u30E1\u30E2\uFF085,000 \u6587\u5B57\u307E\u3067\u3002twp invoice memo \u3067\u3082\u66F8\u3051\u307E\u3059\uFF09"],["manage_form_data","\u6DFB\u4ED8\u66F8\u985E\u30FB\u96C6\u8A08\u9805\u76EE\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\uFF08\u753B\u9762\u304C\u4F5C\u308B\u5F62\u3002CLI\
|
|
105
|
+
\u304B\u3089\u306F\u6DFB\u4ED8\u3092\u4F5C\u308C\u307E\u305B\u3093\uFF09"],["details","\u4F5C\u6210\u3067\u5FC5\u9808\u30FB1 \u4EF6\u4EE5\u4E0A\u3002update \u3067\u9001\u308B\u3068\u660E\u7D30\u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059"],["details[].item_name","\u5FC5\u9808\u3002\u54C1\u540D\uFF08500 \u6587\u5B57\u307E\u3067\uFF09"],["details[].quantity","\u5FC5\u9808\u3002\u6570\u91CF\uFF080 \u4EE5\u4E0A\u306E\u6570\u5024\uFF09"],["details[].unit","\u5FC5\u9808\u3002set / item / unit /\
|
|
106
|
+
hour / day / month / person / person_month / person_day"],["details[].unit_price","\u5FC5\u9808\u3002\u5358\u4FA1\uFF08\u6574\u6570\u30FB\u5186\uFF09"],["details[].tax_rate",'\u5FC5\u9808\u3002"10" / "8" / "0"\uFF08\u6587\u5B57\u5217\uFF09'],["details[].description / delivery_date","\u660E\u7D30\u306E\u8AAC\u660E\u30FB\u7D0D\u54C1\u65E5\uFF08YYYY-MM-DD\uFF09"],["recipients","\u9001\u4ED8\u5148\uFF0850 \u4EF6\u307E\u3067\uFF09\u3002update \u3067\u9001\u308B\u3068\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059"],
|
|
107
|
+
["recipients[].customer_contact_id","\u5FC5\u9808\u3002\u9867\u5BA2\u306E\u62C5\u5F53\u8005 ID"],["recipients[].recipient_type","to\uFF08\u5B9B\u5148\uFF09/ cc\uFF08\u5199\u3057\uFF09"],["approval_comment","update \u306E\u307F\u3002\u627F\u8A8D\u7533\u8ACB\u6642\u306E\u7533\u8ACB\u8005\u30B3\u30E1\u30F3\u30C8\uFF081,000 \u6587\u5B57\u307E\u3067\uFF09"]];var CONTENT_MAX_CHARS2=1e6;var MEMO_MAX_CHARS=5e3;var CANCEL_REASON_MAX_CHARS=1e3;var TITLE_MAX_CHARS=500;var MESSAGE_MAX_CHARS=2e3;var WRITE_COLUMNS=[
|
|
108
|
+
"id","invoice_no","title","status","invoice_date","due_date","company_name","project_name","subtotal","tax_amount","total"];var CONTENT_FILE_FLAG2={name:"--content-file",summary:"\u8ACB\u6C42\u306E\u5185\u5BB9\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var SKELETON_FLAG2={name:"--generate-cli-skeleton",summary:"--content-file \u306E\u3072\u306A\u5F62\u3092\u51FA\u3057\u3066\u7D42\u4E86\u3059\u308B\uFF08\u8ACB\u6C42\u306F\u5909\u3048\u306A\u3044\uFF09",
|
|
109
|
+
takesValue:false};var CONTENT_HELP2="\u5185\u5BB9\uFF08--content-file\uFF09\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3059\u3002\u30AD\u30FC\u306F\u753B\u9762\u306E\u5165\u529B\u9805\u76EE\u3068\u540C\u3058\u540D\u524D\uFF08title / invoice_date / details \u306A\u3069\uFF09\u3067\u3001\n \u5404\u30AD\u30FC\u306B\u6E21\u305B\u308B\u5024\u306F --generate-cli-skeleton \u306E\u6CE8\u8A18\uFF08stderr\uFF09\u306B\u51FA\u307E\u3059\u3002\n \u30B5\u30FC\u30D0\u306B\u7121\u3044\u30AD\u30FC\uFF08\u6253\u3061\u9593\u9055\u3044\u3092\u542B\u3080\u3002\u660E\u7D30 details[] \u3068\u9001\u4ED8\u5148 recipients[] \u306E\u4E2D\u3082\uFF09\u306F\u3001\u9001\u308B\u524D\u306B\u3059\u3079\u3066\u6319\u3052\u3066\u6B62\u3081\u307E\u3059\n \uFF08\u30B5\u30FC\u30D0\u306F\u77E5\u3089\u306A\u3044\u30AD\u30FC\u3092\u9ED9\u3063\u3066\u6368\u3066\u308B\u305F\u3081\uFF09\u3002\u5024\u306E\u8AA4\u308A\u306F\u30B5\u30FC\u30D0\u304C 422 \u3067\u65AD\u308A\u307E\u3059\u3002--content-file - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3081\u307E\u3059\u3002";
|
|
110
|
+
function usageOf2(op){return`twp invoice ${op} help`}function invoiceIdArg(input,op){const[raw,...rest]=input.args;const id=raw?.trim()??"";if(id==="")throw new UsageError("\u8ACB\u6C42\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usageOf2(op));if(rest.length>0)throw new UsageError(`\u53D7\u3051\u53D6\u308C\u308B\u8ACB\u6C42\u306E ID \u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.join(" ")}`,usageOf2(op));if(!isExactNumericId(id)){throw new UsageError(`\u8ACB\u6C42\u306E ID \u306F\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,
|
|
111
|
+
"\u8ACB\u6C42\u756A\u53F7\uFF08INV0000170 \u306A\u3069\uFF09\u3067\u63A2\u3059\u306A\u3089 twp invoice list --keyword <\u756A\u53F7> \u306E id \u5217\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002")}return id}function invoicePath(input,op){return`${PATH2}/${invoiceIdArg(input,op)}`}function noArgs2(input,op){if(input.args.length>0)throw new UsageError(`${op} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usageOf2(op))}function dataOf2(body,what){
|
|
112
|
+
const data=isRecord(body)?body["data"]:void 0;if(!isRecord(body)||body["result"]!==true||!isRecord(data)||typeof data["id"]!=="string"){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return data}function serverMessage2(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function syncedNotes(body,what){
|
|
113
|
+
const ids=isRecord(body)?body["synced_source_invoice_ids"]:void 0;return Array.isArray(ids)&&ids.length>0?[`\u7D71\u5408\u5143\u306E\u8ACB\u6C42\uFF08ID ${ids.map(String).join(", ")}\uFF09\u3082${what}`]:[]}function text2(value){return typeof value==="string"||typeof value==="number"?String(value):""}function describeInvoice(invoice){const no=text2(invoice["invoice_no"]);const total=typeof invoice["total"]==="number"?`\u7A0E\u8FBC ${invoice["total"].toLocaleString("ja-JP")} \u5186`:"";const status=text2(
|
|
114
|
+
invoice["status"]);const parts=[text2(invoice["company_name"]),total,status===""?"":invoiceFilters.statusName(status)].filter(part=>part!=="");return`${no===""?"\uFF08\u8ACB\u6C42\u756A\u53F7\u306A\u3057\uFF09":no}\u300C${text2(invoice["title"])}\u300D${parts.length>0?`\uFF08${parts.join("\u30FB")}\uFF09`:""}`}function unknownRowKeys(value,key,allowed,source){if(value===void 0||value===null)return[];if(!Array.isArray(value))throw new UsageError(`${key} \u306F\u914D\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\
|
|
115
|
+
\uFF09`,CONTENT_HELP2);const problems=[];value.forEach((row,index)=>{if(!isRecord(row)){problems.push(`${key}[${index}] \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return}for(const name of Object.keys(row)){if(!allowed.includes(name))problems.push(`${key}[${index}].${name}`)}});return problems}function parseInvoiceContent(textBody,source,mode){let parsed;try{parsed=JSON.parse(textBody)}catch{throw new UsageError(`\u8ACB\u6C42\u306E\u5185\u5BB9\u304C JSON \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093\uFF08${source}\
|
|
116
|
+
\uFF09`,CONTENT_HELP2)}if(!isRecord(parsed))throw new UsageError(`\u8ACB\u6C42\u306E\u5185\u5BB9\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\uFF09`,CONTENT_HELP2);const allowed=mode==="create"?STORE_KEYS:UPDATE_KEYS;const unknown=Object.keys(parsed).filter(key=>!allowed.includes(key));const problems=[...unknown.map(key=>mode==="create"&&key==="approval_comment"?"approval_comment\uFF08\u4F5C\u6210\u3067\u306F\u9001\u308C\u307E\u305B\u3093\u3002\u627F\u8A8D\u7533\u8ACB\u306F update \u3067\uFF09":
|
|
117
|
+
mode==="update"&&CREATE_ONLY_KEYS.includes(key)?`${key}\uFF08\u4F5C\u6210\u306E\u3068\u304D\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF09`:key),...unknownRowKeys(parsed["details"],"details",DETAIL_KEYS2,source),...unknownRowKeys(parsed["recipients"],"recipients",RECIPIENT_KEYS,source)];if(problems.length>0){throw new UsageError(`\u8ACB\u6C42\u306E\u5185\u5BB9\u306B\u9001\u308C\u306A\u3044\u9805\u76EE\u304C\u3042\u308A\u307E\u3059\uFF08${source}\uFF09: ${problems.join(", ")}`,`\u9001\u308C\u308B\u9805\u76EE\u306F twp \
|
|
118
|
+
invoice ${mode} --generate-cli-skeleton \u306E\u6CE8\u8A18\u306B\u4E26\u3073\u307E\u3059\u3002${mode==="update"?"\u4ECA\u306E\u5024\u306F twp invoice update <\u8ACB\u6C42ID> --generate-cli-skeleton \u3067\u53D6\u308C\u307E\u3059\u3002":""}`)}if(mode==="update"&&Object.keys(parsed).length===0){throw new UsageError(`\u66F8\u304D\u63DB\u3048\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093\uFF08${source} \u304C\u7A7A\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3059\uFF09`,usageOf2("update"))}
|
|
119
|
+
return parsed}async function readContent(input,mode){const body=await readBody(input,{flag:"--content",fileFlag:CONTENT_FILE_FLAG2.name,label:"\u8ACB\u6C42\u306E\u5185\u5BB9",maxChars:CONTENT_MAX_CHARS2,usage:usageOf2(mode)});return body===void 0?void 0:parseInvoiceContent(body,`${CONTENT_FILE_FLAG2.name} ${input.flags.get(CONTENT_FILE_FLAG2.name)??""}`,mode)}function contentNotes(body,mode){const notes=[];if(mode==="create"&&body["direct_create"]===true&&(body["estimate_id"]===void 0||body["est\
|
|
120
|
+
imate_id"]===null)){notes.push("direct_create \u306A\u306E\u3067\u3001\u30B5\u30FC\u30D0\u304C\u3053\u306E\u8ACB\u6C42\u306E\u660E\u7D30\u3067\u898B\u7A4D\u3092\u300C\u627F\u8A8D\u6E08\u300D\u3067\u81EA\u52D5\u4F5C\u6210\u3057\u3001\u8ACB\u6C42\u306B\u7D10\u3065\u3051\u307E\u3059")}if(mode==="update"){if(Array.isArray(body["details"]))notes.push("\u660E\u7D30\uFF08details\uFF09\u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u9001\u3063\u305F\u884C\u3060\u3051\u304C\u6B8B\u308A\u307E\u3059\uFF09");
|
|
121
|
+
if(Array.isArray(body["recipients"]))notes.push("\u9001\u4ED8\u5148\uFF08recipients\uFF09\u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059");if(body["status"]==="in_progress")notes.push("status \u3092 in_progress\uFF08\u7533\u8ACB\u4E2D\uFF09\u306B\u3059\u308B\u3068\u627F\u8A8D\u7533\u8ACB\u306B\u306A\u308A\u3001\u627F\u8A8D\u8005\u3078\u5C4A\u304D\u307E\u3059")}return notes}function todayJst(now=new Date){return new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Tokyo"}).format(now)}
|
|
122
|
+
function fieldNotes2(mode){return[`\u9001\u308C\u308B\u9805\u76EE\uFF08${mode}\uFF09\u3068\u5024\u306E\u6C7A\u307E\u308A\uFF08\u30B5\u30FC\u30D0\u306E\u691C\u67FB\u306E\u5199\u3057\uFF09:`,...FIELD_NOTES2.filter(([key])=>mode==="create"?key!=="approval_comment":!CREATE_ONLY_KEYS.some(only=>key.startsWith(only))).map(([key,note])=>` ${key}: ${note}`)]}function rulesOf(body){const list=isRecord(body)?body["list"]:void 0;if(!isRecord(body)||body["result"]!==true||!Array.isArray(list)||!list.every(
|
|
123
|
+
isRecord)){throw new ApiResponseError("\u8ACB\u6C42\u756A\u53F7\u306E\u63A1\u756A\u30EB\u30FC\u30EB\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return list.filter(row=>row["is_active"]!==false)}var RULES_PLAN={method:"GET",path:"/api/v2/sales/invoice-no-rules",query:{page_limit:100,page_no:1}};function createSkeleton2(body){const rules=rulesOf(body);const today=todayJst();
|
|
124
|
+
return{invoice_no_rule_id:rules.length===1?rules[0]?.["id"]??null:null,title:"",company_id:null,project_id:"",invoice_user_id:null,status:"new",invoice_date:today,due_date:null,memo:null,details:[{item_name:"",description:null,quantity:1,unit:"set",unit_price:0,tax_rate:"10"}]}}function createSkeletonNotes2(body){const rules=rulesOf(body);const pageSum=isRecord(body)?body["page_sum"]:void 0;const lines=rules.length===0?["\u8ACB\u6C42\u756A\u53F7\u306E\u63A1\u756A\u30EB\u30FC\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\uFF08invoice_no_rule_id \u3092 null \u306E\u307E\u307E\u4F5C\u308B\u3068\u8ACB\u6C42\u756A\u53F7\u306A\u3057\u306B\u306A\u308A\u307E\u3059\uFF09"]:
|
|
125
|
+
rules.length===1?[`\u8ACB\u6C42\u756A\u53F7\u306E\u63A1\u756A\u30EB\u30FC\u30EB\u306F\u300C${text2(rules[0]?.["rule_name"])}\u300D\u3060\u3051\u306A\u306E\u3067\u3001\u305D\u308C\u3092\u5165\u308C\u307E\u3057\u305F`]:["invoice_no_rule_id \u306B\u6B21\u306E\u3069\u308C\u304B\u306E id \u3092\u5165\u308C\u3066\u304F\u3060\u3055\u3044\uFF08\u8ACB\u6C42\u756A\u53F7\u306E\u63A1\u756A\u30EB\u30FC\u30EB\u3002null \u306A\u3089\u756A\u53F7\u306A\u3057\uFF09:",...rules.map(row=>` ${text2(row["id"])}: ${text2(
|
|
126
|
+
row["rule_name"])}`),...typeof pageSum==="number"&&pageSum>1?[` \uFF08\u5148\u982D ${rules.length} \u4EF6\u3060\u3051\u3092\u51FA\u3057\u3066\u3044\u307E\u3059\u3002\u6B8B\u308A\u306F twp api /api/v2/sales/invoice-no-rules\uFF09`]:[]];return[...lines,"project_id\u30FBtitle\u30FBdetails[].item_name / unit_price \u3092\u57CB\u3081\u3066\u304B\u3089 twp invoice create --content-file <\u30D1\u30B9> \u3067\u4F5C\u308A\u307E\u3059","\u898B\u7A4D\u304B\u3089\u8ACB\u6C42\u3092\u4F5C\u308B\u306A\u3089 estimate_id \u3092\u5165\u308C\u307E\u3059\uFF08\u62C5\u5F53\u8005\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u898B\u7A4D\u304B\u3089\u5F15\u304D\u7D99\u304C\u308C\u307E\u3059\uFF09",
|
|
127
|
+
...fieldNotes2("create")]}function updateSkeleton2(invoice){const out={};for(const key of UPDATE_KEYS){if(key==="approval_comment"||!(key in invoice))continue;const value=invoice[key];if(key==="details"&&Array.isArray(value)){out[key]=value.filter(isRecord).map(row=>pick(row,DETAIL_KEYS2))}else if(key==="recipients"&&Array.isArray(value)){out[key]=value.filter(row=>isRecord(row)&&row["is_deleted"]!==true).map(row=>pick(row,RECIPIENT_KEYS))}else{out[key]=value}}return out}function updateSkeletonNotes(invoice){
|
|
128
|
+
const recipients=invoice["recipients"];const deleted=Array.isArray(recipients)?recipients.filter(row=>isRecord(row)&&row["is_deleted"]===true).length:0;return["\u4ECA\u306E\u8ACB\u6C42\u306E\u3001\u66F8\u304D\u8FBC\u3081\u308B\u9805\u76EE\u3060\u3051\u3092\u51FA\u3057\u307E\u3057\u305F\u3002\u5909\u3048\u306A\u3044\u9805\u76EE\u306F\u6D88\u3057\u3066\u304B\u3089 twp invoice update <\u8ACB\u6C42ID> --content-file <\u30D1\u30B9> \u3067\u9001\u3063\u3066\u304F\u3060\u3055\u3044"," \uFF08details / recip\
|
|
129
|
+
ients \u3092\u9001\u308B\u3068\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF09"," project_id \u306F\u898B\u7A4D\u304B\u3089\u5F15\u304D\u7D99\u3044\u3060\u5024\u306E\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u9001\u308B\u3068\u305D\u306E\u5024\u304C\u8ACB\u6C42\u306B\u56FA\u5B9A\u3055\u308C\u308B\u306E\u3067\u3001\u5909\u3048\u306A\u3044\u306A\u3089\u6D88\u3057\u3066\u304F\u3060\u3055\u3044",...deleted>0?[` \u9001\u4ED8\u5148\u306E\u3046\u3061\u9867\u5BA2\u7BA1\u7406\u3067\u524A\u9664\u3055\u308C\u305F ${deleted}\
|
|
130
|
+
\u4EBA\u306F\u5916\u3057\u307E\u3057\u305F\uFF08\u9001\u308A\u8FD4\u3059\u3068\u30B5\u30FC\u30D0\u304C\u65AD\u308B\u305F\u3081\uFF09`]:[],...fieldNotes2("update")]}function writeResult2(value){if(!isRecord(value)||typeof value["skeleton"]!=="boolean"){throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: invoice \u306E\u5FDC\u7B54\u306B\u5370\u304C\u3042\u308A\u307E\u305B\u3093\uFF08execute \u306E\u914D\u7DDA\u6F0F\u308C\uFF09")}return value}function contentOf2(input){return JSON.parse(requireResolved(
|
|
131
|
+
input,"body"))}function createPlan2(input){if(input.flags.has(SKELETON_FLAG2.name))return RULES_PLAN;return{method:"POST",path:PATH2,body:contentOf2(input)}}function updatePlan2(input){const target=invoicePath(input,"update");if(input.flags.has(SKELETON_FLAG2.name))return{method:"GET",path:target};return{method:"PUT",path:target,body:contentOf2(input)}}async function prepareContent2(input,mode){const wantsSkeleton=input.flags.has(SKELETON_FLAG2.name);if(wantsSkeleton&&input.flags.has(CONTENT_FILE_FLAG2.
|
|
132
|
+
name)){throw new UsageError("--generate-cli-skeleton \u3068 --content-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usageOf2(mode))}if(wantsSkeleton)return input;const content=await readContent(input,mode);if(content===void 0){throw new UsageError("\u8ACB\u6C42\u306E\u5185\u5BB9\u3092 --content-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`\u3072\u306A\u5F62\u306F twp invoice ${mode}${mode==="update"?" <\u8ACB\u6C42ID>":""} --generate-cli\
|
|
133
|
+
-skeleton \u3067\u51FA\u305B\u307E\u3059\u3002`)}return withResolved(input,{body:JSON.stringify(content)})}var createOperation2={name:"create",summary:"\u8ACB\u6C42\u3092\u4F5C\u6210\u3059\u308B\uFF08\u5185\u5BB9\u306F --content-file \u306E JSON\uFF09",usage:"twp invoice create (--content-file <\u30D1\u30B9> | --generate-cli-skeleton)",description:`POST /api/v2/sales/invoices \u3067\u8ACB\u6C42\u3092\u4F5C\u308A\u307E\u3059\u3002\u4F5C\u6210\u6642\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u306F new\uFF08\u4F5C\u6210\u4E2D\uFF09\u304B create_completed\uFF08\u4F5C\u6210\u5B8C\u4E86\uFF09\u3060\u3051\u3067\u3059
|
|
134
|
+
\uFF08\u627F\u8A8D\u7533\u8ACB\u306F twp invoice update \u3067 status \u3092 in_progress \u306B\u3057\u307E\u3059\uFF09\u3002
|
|
135
|
+
|
|
136
|
+
${CONTENT_HELP2}
|
|
137
|
+
|
|
138
|
+
--generate-cli-skeleton \u306F\u8ACB\u6C42\u756A\u53F7\u306E\u63A1\u756A\u30EB\u30FC\u30EB\u306E\u4E00\u89A7\uFF08GET /api/v2/sales/invoice-no-rules\uFF09\u3092\u8AAD\u307F\u3001--content-file \u306B\u6E21\u3059
|
|
139
|
+
\u3072\u306A\u5F62\u3092\u6A19\u6E96\u51FA\u529B\u3078\u51FA\u3057\u3066\u7D42\u4E86\u3057\u307E\u3059\uFF08\u8ACB\u6C42\u306F\u4F5C\u308A\u307E\u305B\u3093\uFF09\u3002\u5404\u9805\u76EE\u306B\u6E21\u305B\u308B\u5024\u306F stderr \u306B\u51FA\u307E\u3059\u3002
|
|
140
|
+
\u4F8B: twp invoice create --generate-cli-skeleton --output json > invoice.json
|
|
141
|
+
|
|
142
|
+
\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u4F5C\u3063\u305F\u8ACB\u6C42\u306E ID \u306F\u51FA\u529B\u306E id \u3067\u3059\u3002`,flags:[CONTENT_FILE_FLAG2,SKELETON_FLAG2],forbidden:SALES_FORBIDDEN,async prepare(input){noArgs2(input,"create");return prepareContent2(input,"create")},plan:createPlan2,plannedNotes:input=>input.flags.has(SKELETON_FLAG2.name)?["\u8ACB\u6C42\u756A\u53F7\u306E\u63A1\u756A\u30EB\u30FC\u30EB\u306E\u4E00\u89A7\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u8ACB\
|
|
143
|
+
\u6C42\u306F\u4F5C\u308A\u307E\u305B\u3093"]:contentNotes(contentOf2(input),"create"),execute:async(input,ctx)=>({skeleton:input.flags.has(SKELETON_FLAG2.name),body:await ctx.send(createPlan2(input))}),summarize(value){const result=writeResult2(value);return result.skeleton?createSkeleton2(result.body):pick(dataOf2(result.body,"\u8ACB\u6C42\u306E\u4F5C\u6210"),WRITE_COLUMNS)},raw(value){const result=writeResult2(value);return result.skeleton?createSkeleton2(result.body):dataOf2(result.body,"\u8ACB\u6C42\u306E\u4F5C\
|
|
144
|
+
\u6210")},notes(value){const result=writeResult2(value);return result.skeleton?createSkeletonNotes2(result.body):serverMessage2(result.body)}};var updateOperation2={name:"update",summary:"\u8ACB\u6C42\u3092\u66F8\u304D\u63DB\u3048\u308B\uFF08\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u3044\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308B\uFF09",usage:"twp invoice update <\u8ACB\u6C42ID> (--content-file <\u30D1\u30B9> | --generate-cli-skeleton)",description:`PUT /api/v2/sales/invoices/{id} \u3067\u8ACB\u6C42\u3092\u66F8\u304D\u63DB\u3048\u307E\u3059\u3002\u30D5\u30A1\
|
|
145
|
+
\u30A4\u30EB\u306B\u66F8\u3044\u305F\u30AD\u30FC\u3060\u3051\u3092\u9001\u308A\u307E\u3059\uFF08\u66F8\u304B\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002
|
|
146
|
+
\u26A0\uFE0F details\uFF08\u660E\u7D30\uFF09\u3068 recipients\uFF08\u9001\u4ED8\u5148\uFF09\u306F\u3001\u9001\u308B\u3068\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u884C\u3054\u3068\u306E\u30DE\u30FC\u30B8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002
|
|
147
|
+
status \u3092 in_progress\uFF08\u7533\u8ACB\u4E2D\uFF09\u306B\u3059\u308B\u3068\u627F\u8A8D\u7533\u8ACB\u306B\u306A\u308A\u307E\u3059\uFF08approval_comment \u3067\u7533\u8ACB\u8005\u30B3\u30E1\u30F3\u30C8\u3092\u6DFB\u3048\u3089\u308C\u307E\u3059\uFF09\u3002
|
|
148
|
+
\u53D6\u6D88\uFF08\u7121\u52B9\uFF09\u306E\u8ACB\u6C42\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093\uFF08\u5148\u306B twp invoice uncancel\uFF09\u3002\u7D71\u5408\u8ACB\u6C42\u66F8\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u5909\u3048\u308B\u3068\u7D71\u5408\u5143\u306E\u8ACB\u6C42\u306B\u3082\u4F1D\u308F\u308A\u307E\u3059\u3002
|
|
149
|
+
|
|
150
|
+
${CONTENT_HELP2}
|
|
151
|
+
|
|
152
|
+
--generate-cli-skeleton \u306F\u4ECA\u306E\u8ACB\u6C42\u3092\u8AAD\u307F\uFF08GET /api/v2/sales/invoices/{id}\uFF09\u3001\u66F8\u304D\u8FBC\u3081\u308B\u30AD\u30FC\u3060\u3051\u3092\u6B8B\u3057\u3066\u51FA\u3057\u307E\u3059
|
|
153
|
+
\uFF08get \u306E\u5FDC\u7B54\u306F\u91D1\u984D\u30FB\u540D\u524D\u306A\u3069\u66F8\u304D\u8FBC\u3081\u306A\u3044\u9805\u76EE\u3092\u542B\u3080\u306E\u3067\u3001\u305D\u306E\u307E\u307E\u3067\u306F\u9001\u308C\u307E\u305B\u3093\uFF09\u3002
|
|
154
|
+
\u4F8B: twp invoice update 123 --generate-cli-skeleton --output json > invoice.json`,flags:[CONTENT_FILE_FLAG2,SKELETON_FLAG2],forbidden:SALES_FORBIDDEN,async prepare(input){invoiceIdArg(input,"update");return prepareContent2(input,"update")},plan:updatePlan2,plannedNotes:input=>input.flags.has(SKELETON_FLAG2.name)?["\u4ECA\u306E\u8ACB\u6C42\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u66F8\u304D\u63DB\u3048\u307E\u305B\u3093"]:contentNotes(contentOf2(input),"update"),execute:async(input,ctx)=>({
|
|
155
|
+
skeleton:input.flags.has(SKELETON_FLAG2.name),body:await ctx.send(updatePlan2(input))}),summarize(value){const result=writeResult2(value);return result.skeleton?updateSkeleton2(dataOf2(result.body,"\u8ACB\u6C42")):pick(dataOf2(result.body,"\u8ACB\u6C42\u306E\u66F4\u65B0"),WRITE_COLUMNS)},raw(value){const result=writeResult2(value);return result.skeleton?updateSkeleton2(dataOf2(result.body,"\u8ACB\u6C42")):dataOf2(result.body,"\u8ACB\u6C42\u306E\u66F4\u65B0")},notes(value){const result=writeResult2(
|
|
156
|
+
value);return result.skeleton?updateSkeletonNotes(dataOf2(result.body,"\u8ACB\u6C42")):[...serverMessage2(result.body),...syncedNotes(result.body,"\u540C\u3058\u30B9\u30C6\u30FC\u30BF\u30B9\u306B\u5909\u308F\u308A\u307E\u3057\u305F")]}};async function withInvoice(input,ctx,op){const invoice=await ctx.resolver.salesRecord("invoice",invoiceIdArg(input,op),"<\u8ACB\u6C42ID>");return withResolved(input,{invoice:JSON.stringify(invoice)})}function invoiceOf(input){return JSON.parse(requireResolved(input,
|
|
157
|
+
"invoice"))}var deleteOperation2={name:"delete",summary:"\u8ACB\u6C42\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",usage:"twp invoice delete <\u8ACB\u6C42ID> --yes",description:"DELETE /api/v2/sales/invoices/{id} \u3067\u8ACB\u6C42\u3092\u524A\u9664\u3057\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306F\u8AD6\u7406\u524A\u9664\u3067\u3001\u4E00\u89A7\u30FB\u8A73\u7D30\u304B\u3089\u6D88\u3048\u307E\u3059\uFF09\u3002\n\u5165\u91D1\u304C\u5F15\u304D\u5F53\u3066\u3089\u308C\u3066\u3044\u308B\u8ACB\u6C42\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF08\u5148\u306B\u5165\u91D1\u306E\u5F15\u5F53\u3092\u89E3\u9664\u3057\u307E\u3059\uFF09\u3002\u53D6\u6D88\uFF08\u7121\u52B9\uFF09\u30FB\u5931\u6CE8\u306E\u8ACB\u6C42\u3082\u524A\u9664\u3067\u304D\u307E\u3059\u3002\n\u9001\u308B\u524D\u306B\u5BFE\u8C61\u306E\u8ACB\u6C42\u3092\u8AAD\u307F\u3001stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002",
|
|
158
|
+
destructive:true,flags:[],forbidden:SALES_FORBIDDEN,prepare:(input,ctx)=>withInvoice(input,ctx,"delete"),plan:input=>({method:"DELETE",path:invoicePath(input,"delete")}),plannedNotes(input){const invoice=invoiceOf(input);const notes=[`\u524A\u9664\u3059\u308B\u8ACB\u6C42: ${describeInvoice(invoice)}`];if(invoice["is_consolidated"]===true){notes.push("\u3053\u308C\u306F\u7D71\u5408\u8ACB\u6C42\u66F8\u3067\u3059\u3002\u524A\u9664\u3057\u3066\u3082\u7D71\u5408\u5143\u306E\u8ACB\u6C42\u306F\u6D88\u3048\u305A\u3001\u7D71\u5408\u306E\u7D10\u3065\u3051\u3082\u6B8B\u308A\u307E\u3059\uFF08\u7D71\u5408\u5143\u306F\u4E00\u89A7\u306E\u6700\u4E0A\u4F4D\u306B\u623B\u308A\u307E\u305B\u3093\uFF09")}
|
|
159
|
+
return notes},summarize:body=>acknowledgement(body,"\u8ACB\u6C42\u524A\u9664"),raw:body=>acknowledgement(body,"\u8ACB\u6C42\u524A\u9664")};var REASON_FLAGS=[{name:"--reason",summary:`\u53D6\u6D88\u306E\u7406\u7531\uFF08\u5FC5\u9808\u30FB${CANCEL_REASON_MAX_CHARS.toLocaleString()} \u6587\u5B57\u307E\u3067\u3002\u8ACB\u6C42\u306B\u8A18\u9332\u3055\u308C\u307E\u3059\uFF09`,takesValue:true,placeholder:"<\u7406\u7531>"},{name:"--reason-file",summary:"\u53D6\u6D88\u306E\u7406\u7531\u3092\u8AAD\u3080\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",
|
|
160
|
+
takesValue:true,placeholder:"<\u30D1\u30B9>"}];async function prepareCancel(input,ctx){invoiceIdArg(input,"cancel");const reason=await readBody(input,{flag:"--reason",fileFlag:"--reason-file",label:"\u53D6\u6D88\u306E\u7406\u7531",maxChars:CANCEL_REASON_MAX_CHARS,usage:usageOf2("cancel")});if(reason===void 0)throw new UsageError("\u53D6\u6D88\u306E\u7406\u7531\u3092 --reason <\u7406\u7531> \u304B --reason-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usageOf2("cance\
|
|
161
|
+
l"));return withResolved(await withInvoice(input,ctx,"cancel"),{reason})}var cancelOperation={name:"cancel",summary:"\u8ACB\u6C42\u3092\u53D6\u6D88\uFF08\u7121\u52B9\uFF09\u306B\u3059\u308B\uFF08\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u30FB--yes \u304C\u8981\u308B\uFF09",usage:"twp invoice cancel <\u8ACB\u6C42ID> (--reason <\u7406\u7531> | --reason-file <\u30D1\u30B9>) --yes",description:"POST /api/v2/sales/invoices/{id}/cancel \u3067\u3001\u8ACB\u6C42\u3092\u53D6\u6D88\uFF08\u7121\u52B9\uFF09\u306B\u3057\u307E\u3059\u3002\u8ACB\u6C42\u66F8\u3092\u767A\u884C\u3057\u305F\u4E8B\u5B9F\u3068\u5185\u5BB9\u306F\u6B8B\u3057\u305F\u307E\u307E\u3001\n\u50B5\u6A29\u3068\u3057\u3066\u306F\u6D88\u3048\u305F\u72B6\u614B\u306B\u306A\u308A\u3001\u58F2\u639B\u91D1\u6B8B\u9AD8\u30FB\u53CE\
|
|
162
|
+
\u652F\u5206\u6790\u306E\u3069\u306E\u533A\u5206\u306B\u3082\u6570\u3048\u3089\u308C\u306A\u304F\u306A\u308A\u307E\u3059\uFF08\u8ACB\u6C42\u65E5\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002\n\u7406\u7531\u30FB\u5B9F\u884C\u8005\u30FB\u65E5\u6642\u304C\u8ACB\u6C42\u306B\u8A18\u9332\u3055\u308C\u307E\u3059\u3002\u53D6\u6D88\u524D\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3082\u8A18\u9332\u3055\u308C\u3001twp invoice uncancel \u3067\u623B\u305B\u307E\u3059\u3002\n\u5165\u91D1\u304C\u5F15\u304D\u5F53\u3066\u6E08\u307F\u30FB\u627F\u8A8D\u7533\u8ACB\u4E2D\u30FB\u5931\u6CE8\u306E\u8ACB\u6C42\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\u3002\u7D71\u5408\u8ACB\u6C42\u66F8\u3092\u53D6\u308A\u6D88\u3059\u3068\u7D71\u5408\u5143\u306E\u8ACB\u6C42\u3082\u53D6\u6D88\u306B\u306A\u308A\u307E\u3059\u3002\n\u9001\u308B\u524D\u306B\u5BFE\u8C61\u306E\u8ACB\u6C42\u3092\u8AAD\u307F\u3001stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002",
|
|
163
|
+
destructive:true,flags:REASON_FLAGS,forbidden:adminForbidden2("\u8ACB\u6C42\u306E\u53D6\u6D88"),prepare:prepareCancel,plan:input=>({method:"POST",path:`${invoicePath(input,"cancel")}/cancel`,body:{cancel_reason:requireResolved(input,"reason")}}),plannedNotes(input){const invoice=invoiceOf(input);const notes=[`\u53D6\u6D88\uFF08\u7121\u52B9\uFF09\u306B\u3059\u308B\u8ACB\u6C42: ${describeInvoice(invoice)}`];if(invoice["is_consolidated"]===true)notes.push("\u3053\u308C\u306F\u7D71\u5408\u8ACB\u6C42\u66F8\u306A\u306E\u3067\u3001\u7D71\u5408\u5143\u306E\u8ACB\u6C42\u3082\u540C\u3058\u7406\u7531\u3067\u53D6\u6D88\u306B\u306A\u308A\u307E\u3059");
|
|
164
|
+
return notes},summarize:body=>pick(dataOf2(body,"\u8ACB\u6C42\u306E\u53D6\u6D88"),["id","invoice_no","title","status","status_before_cancel","cancel_reason","cancelled_at"]),raw:body=>dataOf2(body,"\u8ACB\u6C42\u306E\u53D6\u6D88"),notes:body=>[...serverMessage2(body),...syncedNotes(body,"\u53D6\u6D88\u306B\u306A\u308A\u307E\u3057\u305F"),"\u623B\u3059\u306B\u306F twp invoice uncancel <\u8ACB\u6C42ID> \u3092\u4F7F\u3044\u307E\u3059"]};var uncancelOperation={name:"uncancel",summary:"\u8ACB\u6C42\u306E\u53D6\u6D88\uFF08\u7121\u52B9\uFF09\u3092\u89E3\u9664\u3057\u3001\
|
|
165
|
+
\u53D6\u6D88\u524D\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3078\u623B\u3059\uFF08\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u30FB--yes \u304C\u8981\u308B\uFF09",usage:"twp invoice uncancel <\u8ACB\u6C42ID> --yes",description:"DELETE /api/v2/sales/invoices/{id}/cancel \u3067\u3001\u53D6\u6D88\uFF08\u7121\u52B9\uFF09\u306E\u8ACB\u6C42\u3092\u53D6\u6D88\u524D\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3078\u623B\u3057\u307E\u3059\uFF08\u53D6\u6D88\u524D\u304C\u5206\u304B\u3089\u306A\u3044\u8ACB\u6C42\u306F\n\u300C\u8ACB\u6C42\u66F8\u767A\u884C\u6E08\u300D\u3078\u623B\u308A\u307E\u3059\uFF09\u3002\u53D6\u6D88\u306E\u7406\u7531\u30FB\u65E5\u6642\u306E\u8A18\u9332\u306F\u6D88\u3048\u307E\u3059\u3002\u7D71\u5408\u8ACB\u6C42\u66F8\u306A\u3089\u7D71\u5408\u5143\u306E\u8ACB\u6C42\u3082\u623B\u308A\u307E\u3059\u3002\n\u9001\u308B\u524D\u306B\u5BFE\u8C61\u306E\u8ACB\u6C42\u3092\u8AAD\u307F\u3001stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002",
|
|
166
|
+
destructive:true,confirmation:"\u50B5\u6A29\u3092\u623B\u3057\u3001\u53D6\u6D88\u306E\u8A18\u9332\uFF08\u7406\u7531\u30FB\u5B9F\u884C\u8005\u30FB\u65E5\u6642\uFF09\u3092\u6D88\u3059\u64CD\u4F5C",flags:[],forbidden:adminForbidden2("\u8ACB\u6C42\u306E\u53D6\u6D88\u89E3\u9664"),prepare:(input,ctx)=>withInvoice(input,ctx,"uncancel"),plan:input=>({method:"DELETE",path:`${invoicePath(input,"uncancel")}/cancel`}),plannedNotes(input){const invoice=invoiceOf(input);const before=text2(invoice["status_befo\
|
|
167
|
+
re_cancel"]);if(invoice["status"]!=="cancelled")return[`\u8ACB\u6C42 ${describeInvoice(invoice)} \u306F\u53D6\u6D88\uFF08\u7121\u52B9\uFF09\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF09`];return[`\u53D6\u6D88\u3092\u89E3\u9664\u3059\u308B\u8ACB\u6C42: ${describeInvoice(invoice)} \u2192 ${before===""?"\u8ACB\u6C42\u66F8\u767A\u884C\u6E08\uFF08\u53D6\u6D88\u524D\u304C\u8A18\u9332\u3055\u308C\u3066\u3044\u306A\u3044\u305F\u3081\uFF09":invoiceFilters.
|
|
168
|
+
statusName(before)}`]},summarize:body=>pick(dataOf2(body,"\u8ACB\u6C42\u306E\u53D6\u6D88\u89E3\u9664"),["id","invoice_no","title","status"]),raw:body=>dataOf2(body,"\u8ACB\u6C42\u306E\u53D6\u6D88\u89E3\u9664"),notes:body=>[...serverMessage2(body),...syncedNotes(body,"\u53D6\u6D88\u304C\u89E3\u9664\u3055\u308C\u307E\u3057\u305F")]};var INVOICES_FLAG={name:"--invoices",summary:"\u7D71\u5408\u3059\u308B\u8ACB\u6C42\u306E ID\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30672\u3064\u4EE5\u4E0A\uFF09",takesValue:true,
|
|
169
|
+
placeholder:"<ID,ID,\u2026>"};var CONSOLIDATE_TITLE_FLAG={name:"--title",summary:`\u7D71\u5408\u8ACB\u6C42\u66F8\u306E\u4EF6\u540D\uFF08${TITLE_MAX_CHARS} \u6587\u5B57\u307E\u3067\u3002\u7701\u304F\u3068\u300C\u7D71\u5408\u8ACB\u6C42\u66F8\uFF08\u53D6\u5F15\u5148\u540D\uFF09\u300D\uFF09`,takesValue:true,placeholder:"<\u4EF6\u540D>"};function consolidateIds(raw){const values=(raw??"").split(",").map(value=>value.trim()).filter(value=>value!=="");const bad=values.filter(value=>!isExactNumericId(value));
|
|
170
|
+
if(bad.length>0)throw new UsageError(`--invoices \u306E\u8ACB\u6C42 ID \u306F\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${bad.join(", ")}`,usageOf2("consolidate"));const ids=[...new Set(values)];if(ids.length<2)throw new UsageError("--invoices \u306B\u7D71\u5408\u3059\u308B\u8ACB\u6C42\u306E ID \u30922\u3064\u4EE5\u4E0A\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\uFF09\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usageOf2("consolidate"));return ids}async function prepareConsolidate(input,ctx){
|
|
171
|
+
noArgs2(input,"consolidate");const ids=consolidateIds(nonEmpty(input.flags,INVOICES_FLAG.name));const title=input.flags.get(CONSOLIDATE_TITLE_FLAG.name);if(title!==void 0&&[...title].length>TITLE_MAX_CHARS){throw new UsageError(`\u7D71\u5408\u8ACB\u6C42\u66F8\u306E\u4EF6\u540D\u306F ${TITLE_MAX_CHARS} \u6587\u5B57\u307E\u3067\u3067\u3059`,usageOf2("consolidate"))}const sources=[];for(const id of ids)sources.push(await ctx.resolver.salesRecord("invoice",id,INVOICES_FLAG.name));return withResolved(
|
|
172
|
+
input,{ids:JSON.stringify(ids),sources:JSON.stringify(sources)})}var consolidateOperation={name:"consolidate",summary:"\u540C\u3058\u53D6\u5F15\u5148\u306E\u8907\u6570\u306E\u8ACB\u6C42\u30921\u679A\u306E\u7D71\u5408\u8ACB\u6C42\u66F8\u306B\u307E\u3068\u3081\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",usage:"twp invoice consolidate --invoices <ID,ID,\u2026> [--title <\u4EF6\u540D>] --yes",description:"POST /api/v2/sales/invoices/consolidate \u3067\u3001\u9078\u3093\u3060\u8ACB\u6C42\u306E\u660E\u7D30\u3092\u7E26\u306B\u4E26\u3079\u305F\u7D71\u5408\u8ACB\u6C42\u66F8\u3092\u65B0\u3057\u304F\u4F5C\u308A\u307E\u3059\uFF08\u30B9\u30C6\u30FC\u30BF\u30B9\u306F\u4F5C\u6210\u5B8C\u4E86\uFF09\u3002\n\u7D71\u5408\u5143\u306E\u8ACB\u6C42\u306F\u6D88\u3048\u305A\u306B\u305D\u306E\
|
|
173
|
+
\u307E\u307E\u6B8B\u308A\u3001\u7D71\u5408\u8ACB\u6C42\u66F8\u306B\u7D10\u3065\u304D\u307E\u3059\u3002\u4E00\u89A7\uFF08twp invoice list\uFF09\u3067\u306F\u7D71\u5408\u8ACB\u6C42\u66F8\u304C1\u884C\u3067\u51FA\u3066\u3001\n\u7D71\u5408\u5143\u306F\u305D\u306E children \u306B\u5165\u308A\u307E\u3059\uFF08\u6700\u4E0A\u4F4D\u306B\u306F\u51FA\u306A\u304F\u306A\u308A\u307E\u3059\uFF09\u3002\u7D71\u5408\u8ACB\u6C42\u66F8\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u5909\u3048\u308B\u3068\u7D71\u5408\u5143\u306B\u3082\u4F1D\u308F\u308A\u307E\u3059\u3002\n\u8ACB\u6C42\u756A\u53F7\u306F\u7D71\u5408\u5143\u306E\u63A1\u756A\u30EB\u30FC\u30EB\u3067\u63A1\u756A\u3057\u3001\u8ACB\u6C42\u65E5\u306F\u6700\u3082\u65B0\u3057\u3044\u3082\u306E\u30FB\u652F\u6255\u671F\u65E5\u306F\u6700\u3082\u9045\u3044\u3082\u306E\u3092\u4F7F\u3044\u307E\u3059\u3002\u5408\u8A08\u306F\u660E\u7D30\u3092\u5408\u7B97\u3057\u3066\n\u7A0E\u7387\u3054\u3068\u306B\u4E38\u3081\u76F4\u3059\u306E\u3067\u3001\u7D71\u5408\u5143\u306E\u5408\u8A08\u306E\u5358\u7D14\u548C\u3068 1 \u5186\u305A\u308C\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\n\u53D6\u5F15\u5148\u304C\u9055\u3046\u8ACB\u6C42\u30FB\u7D71\u5408\u8ACB\u6C42\u66F8\u30FB\u53D6\u6D88\uFF08\u7121\u52B9\uFF09\u3084\u5931\u6CE8\u306E\u8ACB\u6C42\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF08\u7D71\u5408\u3092\u53D6\u308A\u6D88\u3059 API \u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\u9001\u308B\u524D\u306B\u7D71\u5408\u5143\u306E\u8ACB\u6C42\u3092\u8AAD\u307F\u3001stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\n \u4F8B: twp invoice consolidate --invoices 101,102 --yes",
|
|
174
|
+
destructive:true,confirmation:"\u7D71\u5408\u8ACB\u6C42\u66F8\u3092\u4F5C\u308A\u3001\u7D71\u5408\u5143\u306E\u8ACB\u6C42\u3092\u305D\u308C\u306B\u7D10\u3065\u3051\u308B\u64CD\u4F5C\uFF08\u7D71\u5408\u3092\u53D6\u308A\u6D88\u3059 API \u306F\u3042\u308A\u307E\u305B\u3093\uFF09",flags:[INVOICES_FLAG,CONSOLIDATE_TITLE_FLAG],forbidden:SALES_FORBIDDEN,prepare:prepareConsolidate,plan:input=>({method:"POST",path:`${PATH2}/consolidate`,body:{invoice_ids:JSON.parse(requireResolved(input,"ids")).map(Number),
|
|
175
|
+
...input.flags.get(CONSOLIDATE_TITLE_FLAG.name)===void 0?{}:{title:input.flags.get(CONSOLIDATE_TITLE_FLAG.name)}}}),plannedNotes(input){const sources=JSON.parse(requireResolved(input,"sources"));const companies=new Set(sources.map(source=>text2(source["company_id"])));const sum=sources.reduce((acc,source)=>acc+(typeof source["total"]==="number"?source["total"]:0),0);return[`\u7D71\u5408\u3059\u308B\u8ACB\u6C42\uFF08${sources.length} \u4EF6\u30FB\u5408\u8A08 \u7A0E\u8FBC ${sum.toLocaleString("ja-\
|
|
176
|
+
JP")} \u5186\uFF09:`,...sources.map(source=>` ${text2(source["id"])}: ${describeInvoice(source)}`),...companies.size>1?["\u53D6\u5F15\u5148\u304C\u9055\u3046\u8ACB\u6C42\u304C\u6DF7\u3056\u3063\u3066\u3044\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF09"]:[],"\u7D71\u5408\u5143\u306E\u8ACB\u6C42\u306F\u6B8B\u308A\u3001\u7D71\u5408\u8ACB\u6C42\u66F8\u306B\u7D10\u3065\u304D\u307E\u3059\uFF08\u4E00\u89A7\u3067\u306F\u7D71\u5408\u8ACB\u6C42\u66F8\u306E children \u306B\u79FB\u308A\u307E\u3059\uFF09"]},
|
|
177
|
+
summarize:body=>({...pick(dataOf2(body,"\u7D71\u5408\u8ACB\u6C42\u66F8\u306E\u4F5C\u6210"),WRITE_COLUMNS),source_invoice_ids:dataOf2(body,"\u7D71\u5408\u8ACB\u6C42\u66F8\u306E\u4F5C\u6210")["source_invoice_ids"]??null}),raw:body=>dataOf2(body,"\u7D71\u5408\u8ACB\u6C42\u66F8\u306E\u4F5C\u6210"),notes:serverMessage2};var MEMO_FLAGS=[{name:"--text",summary:`\u30E1\u30E2\u306E\u672C\u6587\uFF08${MEMO_MAX_CHARS.toLocaleString()} \u6587\u5B57\u307E\u3067\uFF09`,takesValue:true,placeholder:"<\u672C\u6587>"},
|
|
178
|
+
{name:"--text-file",summary:"\u30E1\u30E2\u306E\u672C\u6587\u3092\u8AAD\u3080\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"--clear",summary:"\u30E1\u30E2\u3092\u6D88\u3059",takesValue:false}];async function prepareMemo(input){invoiceIdArg(input,"memo");const clear=input.flags.has("--clear");const memo=await readBody(input,{flag:"--text",fileFlag:"--text-file",label:"\u793E\u5185\u5171\u6709\u30E1\u30E2",maxChars:MEMO_MAX_CHARS,
|
|
179
|
+
usage:usageOf2("memo")});if(clear&&memo!==void 0)throw new UsageError("--clear \u3068 --text / --text-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usageOf2("memo"));if(!clear&&memo===void 0)throw new UsageError("\u30E1\u30E2\u3092 --text <\u672C\u6587> \u304B --text-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6D88\u3059\u306A\u3089 --clear\uFF09",usageOf2("memo"));return withResolved(input,clear?{memoMode:"clear"}:{memoMode:"set",
|
|
180
|
+
memo})}var memoOperation={name:"memo",summary:"\u8ACB\u6C42\u306E\u793E\u5185\u5171\u6709\u30E1\u30E2\u3092\u66F8\u304D\u63DB\u3048\u308B\uFF08\u4E00\u89A7\u306E\u30E1\u30E2\u6B04\uFF09",usage:"twp invoice memo <\u8ACB\u6C42ID> (--text <\u672C\u6587> | --text-file <\u30D1\u30B9> | --clear)",description:`PATCH /api/v2/sales/invoices/{id}/internal-memo \u3067\u3001\u8ACB\u6C42\u4E00\u89A7\u306E\u30E1\u30E2\u6B04\uFF08\u793E\u5185\u5171\u6709\u30E1\u30E2\uFF09\u3092\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u3048\u307E\u3059\u3002
|
|
181
|
+
\u8ACB\u6C42\u66F8 PDF \u306B\u306F\u51FA\u307E\u305B\u3093\uFF08PDF \u306E\u300C\u5099\u8003\u300D\u306F memo \u3067\u3001\u3053\u306E\u9805\u76EE\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u30B9\u30C6\u30FC\u30BF\u30B9\u306B\u4F9D\u3089\u305A\u66F8\u3051\u307E\u3059\uFF08\u4FDD\u7BA1\u6E08\u30FB\u53D6\u6D88\u6E08\u307F\u306B\u3082\uFF09\u3002
|
|
182
|
+
\u4E0A\u9650\u306F ${MEMO_MAX_CHARS.toLocaleString()} \u6587\u5B57\u3067\u3059\u3002CLI \u306F\u672C\u6587\u3092\u52A0\u5DE5\u305B\u305A\u306B\u9001\u308A\u307E\u3059\u304C\u3001\u30B5\u30FC\u30D0\u304C\u524D\u5F8C\u306E\u7A7A\u767D\u30FB\u6539\u884C\u3092\u843D\u3068\u3057\u3066\u4FDD\u5B58\u3057\u307E\u3059\u3002`,flags:MEMO_FLAGS,forbidden:SALES_FORBIDDEN,prepare:prepareMemo,plan:input=>({method:"PATCH",path:`${invoicePath(input,"memo")}/internal-memo`,body:{internal_memo:requireResolved(input,
|
|
183
|
+
"memoMode")==="clear"?null:requireResolved(input,"memo")}}),summarize:body=>pick(dataOf2(body,"\u793E\u5185\u5171\u6709\u30E1\u30E2\u306E\u4FDD\u5B58"),["id","internal_memo","updated_at"]),raw:body=>dataOf2(body,"\u793E\u5185\u5171\u6709\u30E1\u30E2\u306E\u4FDD\u5B58"),notes:serverMessage2};var FORMAT_FLAG={name:"--format",summary:"\u51FA\u529B\u306E\u5F62\u5F0F\uFF08csv\uFF1D\u8ACB\u6C42\u4E00\u89A7\u30FB\u65E2\u5B9A / mf-journal\uFF1DMF \u4F1A\u8A08\u306E\u4ED5\u8A33\uFF09",takesValue:true,placeholder:"\
|
|
184
|
+
<\u5F62\u5F0F>"};var DEBIT_FLAG={name:"--debit-account",summary:"mf-journal \u306E\u501F\u65B9\u52D8\u5B9A\u79D1\u76EE\uFF08\u65E2\u5B9A \u58F2\u639B\u91D1\uFF09",takesValue:true,placeholder:"<\u79D1\u76EE>"};var CREDIT_FLAG={name:"--credit-account",summary:"mf-journal \u306E\u8CB8\u65B9\u52D8\u5B9A\u79D1\u76EE\uFF08\u65E2\u5B9A \u58F2\u4E0A\u9AD8\uFF09",takesValue:true,placeholder:"<\u79D1\u76EE>"};var FORMATS=["csv","mf-journal"];function exportFormat(input){const raw=nonEmpty(input.flags,FORMAT_FLAG.
|
|
185
|
+
name)?.trim()??"csv";if(!FORMATS.includes(raw))throw new UsageError(`--format \u306F csv \u304B mf-journal \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,usageOf2("export"));return raw}async function prepareExport(input,ctx){const format=exportFormat(input);if(format==="csv"&&(input.flags.has(DEBIT_FLAG.name)||input.flags.has(CREDIT_FLAG.name))){throw new UsageError(`${DEBIT_FLAG.name} / ${CREDIT_FLAG.name} \u306F --format mf-journal \u306E\u3068\u304D\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,
|
|
186
|
+
usageOf2("export"))}return invoiceFilters.prepare(input,ctx,"export")}function exportPlan(input){const format=exportFormat(input);const query=invoiceFilters.query(input);if(format==="csv")return{method:"GET",path:`${PATH2}/export`,query};return{method:"GET",path:`${PATH2}/export-mf-journal`,query:{...query,debit_account:nonEmpty(input.flags,DEBIT_FLAG.name),credit_account:nonEmpty(input.flags,CREDIT_FLAG.name)}}}var exportOperation={name:"export",summary:"\u8ACB\u6C42\u3092 CSV\uFF08\u4E00\u89A7\u304B MF \u4F1A\u8A08\u306E\u4ED5\u8A33\uFF09\u306B\u66F8\u304D\u51FA\u3059\uFF08--out\uFF09",
|
|
187
|
+
usage:"twp invoice export --out <\u30D1\u30B9.csv> [--force] [--format csv|mf-journal] [--debit-account <\u79D1\u76EE>] [--credit-account <\u79D1\u76EE>] [\u7D5E\u308A\u8FBC\u307F\u2026]",description:"\u7D5E\u308A\u8FBC\u307F\uFF08twp invoice list \u3068\u540C\u3058\uFF09\u306B\u5F53\u305F\u308B\u8ACB\u6C42\u3092 CSV\uFF08UTF-8\u30FBBOM \u4ED8\u304D\uFF09\u3067\u66F8\u304D\u51FA\u3057\u307E\u3059\u3002\u30DA\u30FC\u30B8\u30F3\u30B0\u306F\u3042\u308A\u307E\u305B\u3093\u3002\n--format csv\uFF08\u65E2\u5B9A\uFF09\u306F\u753B\u9762\u306E\u300CCSV\u51FA\u529B\u300D\u3068\u540C\u3058\u5217\u306E\u8ACB\u6C42\u4E00\u89A7\u3067\u3059\u3002\u884C\u306F twp invoice list \u3068\u540C\u3058\u304F\u7D71\u5408\u8ACB\u6C42\u66F8\u30921\u884C\u3067\u51FA\u3057\u3001\n \u7D71\u5408\u5143\u306E\u8ACB\u6C42\u306F\u51FA\u307E\u305B\u3093\uFF08\u4E00\u89A7\u3067\u8A72\u5F53\u4EF6\u6570\u3068\u3057\u3066\u51FA\u308B\u4EF6\u6570\u3068\u884C\u6570\u304C\u4E00\u81F4\u3057\u307E\u3059\uFF09\u3002\u4E26\u3073\u306F\u4E00\u89A7\u3068\u540C\u3058 ID \u306E\u964D\u9806\u3067\u3059\u3002\n--format mf-journal \u306F\u753B\u9762\u306E\u300CMF\u4F1A\u8A08\u4ED5\u8A33CSV\u51FA\u529B\u300D\u3068\u540C\u3058\u3067\u3001\u7D5E\u308A\u8FBC\u307F\u306B\u5F53\u305F\u308B\u8ACB\u6C42\u306E\u3046\u3061**\u4FDD\u7BA1\u6E08\uFF08archived\uFF09\u3060\u3051**\u3092\u3001\u53D6\u5F15\u5148\n \uFF08MF \u306E\u88DC\u52A9\u79D1\u76EE\u304C\u8A2D\
|
|
188
|
+
\u5B9A\u3055\u308C\u3066\u3044\u308C\u3070\u88DC\u52A9\u79D1\u76EE\uFF09\u3054\u3068\u306B\u5408\u7B97\u3057\u305F\u4ED5\u8A33\u306B\u3057\u307E\u3059\uFF08\u884C\u6570\u306F\u8ACB\u6C42\u306E\u4EF6\u6570\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n --status \u306B archived \u4EE5\u5916\u3060\u3051\u3092\u6307\u5B9A\u3059\u308B\u30680\u884C\u306B\u306A\u308A\u307E\u3059\u3002\n \u53D6\u5F15\u65E5\u306F --from \u306E\u6708\u306E\u672B\u65E5\uFF08\u7701\u304F\u3068\u4ECA\u65E5\uFF09\u3002\u52D8\u5B9A\u79D1\u76EE\u306F --debit-account\uFF08\u65E2\u5B9A \u58F2\u639B\u91D1\uFF09/ --credit-account\uFF08\u65E2\u5B9A \u58F2\u4E0A\u9AD8\uFF09\u3002\n\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\uFF08\u4E0A\u66F8\u304D\u3059\u308B\u306A\u3089 --force\uFF09\u3002",
|
|
189
|
+
flags:[{name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"--force",summary:"\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3059\u308B",takesValue:false},FORMAT_FLAG,DEBIT_FLAG,CREDIT_FLAG,...invoiceFilters.flags()],download:{outFlag:"--out",forceFlag:"--force"},forbidden:SALES_FORBIDDEN,prepare:prepareExport,plan:exportPlan,plannedNotes(input){if(exportFormat(
|
|
190
|
+
input)!=="mf-journal")return[];const status=input.resolved?.["status"];const notes=["mf-journal \u306F\u7D5E\u308A\u8FBC\u307F\u306B\u5F53\u305F\u308B\u8ACB\u6C42\u306E\u3046\u3061\u4FDD\u7BA1\u6E08\uFF08archived\uFF09\u3060\u3051\u3092\u53D6\u5F15\u5148\u3054\u3068\u306B\u5408\u7B97\u3057\u307E\u3059"];if(status!==void 0&&!status.split(",").includes("archived"))notes.push("--status \u306B archived\uFF08\u4FDD\u7BA1\u6E08\uFF09\u304C\u542B\u307E\u308C\u3066\u3044\u306A\u3044\u306E\u3067\u30010\u884C\u306B\u306A\u308A\u307E\u3059");
|
|
191
|
+
return notes},summarize:body=>body,raw:body=>body};async function sendOnce(plan,ctx,possibly){try{return await ctx.send(plan)}catch(err){const refused=err instanceof ApiError&&err.status>=400&&err.status<500;if(!refused)ctx.warn(`${possibly}\u6253\u3061\u76F4\u3059\u524D\u306B\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002
|
|
192
|
+
`);throw err}}var TO_FLAG={name:"--to",summary:"\u5B9B\u5148\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF08\u5FC5\u9808\u30FB\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\uFF09",takesValue:true,placeholder:"<\u30E1\u30FC\u30EB>",repeatable:true};var CC_FLAG={name:"--cc",summary:"\u5199\u3057\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF08\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\uFF09",takesValue:true,placeholder:"<\u30E1\u30FC\u30EB>",repeatable:true};var MESSAGE_FLAGS=[{
|
|
193
|
+
name:"--message",summary:`\u672C\u6587\u306B\u6DFB\u3048\u308B\u30E1\u30C3\u30BB\u30FC\u30B8\uFF08${MESSAGE_MAX_CHARS.toLocaleString()} \u6587\u5B57\u307E\u3067\uFF09`,takesValue:true,placeholder:"<\u672C\u6587>"},{name:"--message-file",summary:"\u6DFB\u3048\u308B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8AAD\u3080\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"}];function emailSubject(invoiceNo){return`\u8ACB\u6C42\u66F8\u306E\u3054\u9001\u4ED8${invoiceNo===
|
|
194
|
+
""?"":`\uFF08${invoiceNo}\uFF09`} - <\u30C6\u30CA\u30F3\u30C8\u540D>`}function emailAttachmentName(invoiceNo,companyName){const parts=["\u8ACB\u6C42\u66F8",...invoiceNo===""?[]:[invoiceNo],...companyName===""?[]:[`${companyName}\u5FA1\u4E2D`]];return`${parts.join("_").replaceAll(" ","")}.pdf`}async function prepareSend(input,ctx){invoiceIdArg(input,"send");const to=repeatedValues(input,TO_FLAG.name).map(value=>value.trim());const cc=repeatedValues(input,CC_FLAG.name).map(value=>value.trim());if(to.
|
|
195
|
+
length===0)throw new UsageError("\u5B9B\u5148\u3092 --to <\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9> \u30671\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usageOf2("send"));if([...to,...cc].some(value=>value===""))throw new UsageError("--to / --cc \u306B\u7A7A\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304C\u3042\u308A\u307E\u3059",usageOf2("send"));const message=await readBody(input,{flag:"--message",fileFlag:"--message-file",label:"\u6DFB\u3048\u308B\u30E1\u30C3\u30BB\u30FC\u30B8",
|
|
196
|
+
maxChars:MESSAGE_MAX_CHARS,usage:usageOf2("send")});return withResolved(await withInvoice(input,ctx,"send"),{to:JSON.stringify(to),cc:JSON.stringify(cc),...message===void 0?{}:{message}})}function sendPlan(input){const cc=JSON.parse(requireResolved(input,"cc"));const message=input.resolved?.["message"];return{method:"POST",path:`${invoicePath(input,"send")}/send-email`,body:{to:JSON.parse(requireResolved(input,"to")),...cc.length>0?{cc}:{},...message===void 0?{}:{message}}}}function messagePreview(message){
|
|
197
|
+
if(message===void 0)return"\u306A\u3057";const chars=[...message];const head=chars.slice(0,60).join("").replace(/\s+/g," ");return`${chars.length} \u6587\u5B57\u300C${head}${chars.length>60?"\u2026":""}\u300D`}var sendOperation={name:"send",summary:"\u8ACB\u6C42\u66F8 PDF \u3092\u6DFB\u4ED8\u3057\u305F\u30E1\u30FC\u30EB\u3092 --to / --cc \u3078\u9001\u308B\uFF08\u76F8\u624B\u306B\u5C4A\u304F\u30FB--yes \u304C\u8981\u308B\uFF09",usage:"twp invoice send <\u8ACB\u6C42ID> --to <\u30E1\u30FC\u30EB> [--to <\u30E1\u30FC\u30EB>]... [--cc <\u30E1\u30FC\u30EB\
|
|
198
|
+
>]... [--message <\u672C\u6587> | --message-file <\u30D1\u30B9>] --yes",description:"POST /api/v2/sales/invoices/{id}/send-email \u3067\u3001\u30B5\u30FC\u30D0\u304C\u4F5C\u3063\u305F\u8ACB\u6C42\u66F8 PDF \u3092\u6DFB\u4ED8\u3057\u305F\u30E1\u30FC\u30EB\u3092 --to / --cc \u3078\u9001\u308A\u307E\u3059\u3002\n\u26A0\uFE0F \u5B9F\u969B\u306B\u76F8\u624B\u3078\u5C4A\u304D\u3001\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\u3002\u5B9B\u5148\u306F\u753B\u9762\u3068\u540C\u3058\u304F\u6BCE\u56DE\u6307\u5B9A\u3057\u307E\u3059\uFF08\u53D6\u5F15\u5148\u306E\u9001\u4ED8\u5148\u304B\u3089\u81EA\u52D5\u3067\u306F\u9078\u3073\u307E\u305B\u3093\uFF09\u3002\n\u9001\u308B\u524D\u306B\u8ACB\u6C42\u3092\u8AAD\u307F\u3001\u5B9B\u5148\u30FB\u5199\u3057\u30FB\u4EF6\u540D\u30FB\u6DFB\u4ED8\u306E\u540D\u524D\u30FB\u91D1\u984D\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\u3002--dry-run \u306F\u9001\u308A\u307E\u305B\u3093\uFF09\u3002\n\u4EF6\u540D\u306F\u300C\u8ACB\u6C42\u66F8\u306E\u3054\u9001\u4ED8\uFF08\u8ACB\u6C42\u756A\u53F7\uFF09 - \u30C6\u30CA\u30F3\u30C8\u540D\u300D\u3067\u3059\u3002\u53D6\u6D88\uFF08\u7121\u52B9\uFF09\u30FB\u5931\u6CE8\u306E\u8ACB\u6C42\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\u3002\n\u30B9\u30C6\u30FC\u30BF\u30B9\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF08\u5148\u65B9\u9001\u4ED8\u6E08\u306B\u3059\u308B\u306A\u3089 twp invoice update \u3067 status \u3092 sent_to_client \u306B\uFF09\u3002\n\u9001\u4FE1\u306E\u7D50\u679C\u3092\u53D7\u3051\u53D6\u308C\u306A\u304B\u3063\u305F\uFF085xx\u30FB\u901A\u4FE1\u65AD\uFF09\u3068\u304D\u306F\u3001\u5C4A\u3044\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308B\u65E8\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08\u6253\u3061\u76F4\u3059\u3068\u4E8C\u91CD\u306B\u5C4A\u304D\u307E\
|
|
199
|
+
\u3059\uFF09\u3002\n\u3053\u306E\u64CD\u4F5C\u306E --to \u306F\u30E1\u30FC\u30EB\u306E\u5B9B\u5148\u3067\u3059\uFF08twp invoice list / export \u306E --to \u306F\u65E5\u4ED8\u306E\u7D5E\u308A\u8FBC\u307F\uFF09\u3002",destructive:true,confirmation:"\u53D6\u5F15\u5148\u3078\u30E1\u30FC\u30EB\u3092\u9001\u308B\u64CD\u4F5C\uFF08\u9001\u3063\u305F\u30E1\u30FC\u30EB\u306F\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09",flags:[TO_FLAG,CC_FLAG,...MESSAGE_FLAGS],forbidden:SALES_FORBIDDEN,prepare:prepareSend,
|
|
200
|
+
plan:sendPlan,execute:(input,ctx)=>sendOnce(sendPlan(input),ctx,"\u8ACB\u6C42\u66F8\u30E1\u30FC\u30EB\u306F\u9001\u4FE1\u3057\u307E\u3057\u305F\u304C\u3001\u7D50\u679C\u3092\u53D7\u3051\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u76F8\u624B\u306B\u5C4A\u3044\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"),plannedNotes(input){const invoice=invoiceOf(input);const no=text2(invoice["invoice_no"]);const to=JSON.parse(requireResolved(input,"to"));const cc=JSON.parse(
|
|
201
|
+
requireResolved(input,"cc"));const status=text2(invoice["status"]);return[`\u9001\u308B\u8ACB\u6C42: ${describeInvoice(invoice)}`,` \u5B9B\u5148: ${to.join(", ")}`,` \u5199\u3057: ${cc.length===0?"\u306A\u3057":cc.join(", ")}`,` \u4EF6\u540D: ${emailSubject(no)}`,` \u6DFB\u4ED8: ${emailAttachmentName(no,text2(invoice["company_name"]))}\uFF08\u30B5\u30FC\u30D0\u304C\u4ECA\u306E\u5185\u5BB9\u3067\u4F5C\u308B\u8ACB\u6C42\u66F8 PDF\uFF09`,` \u6DFB\u3048\u308B\u30E1\u30C3\u30BB\u30FC\u30B8: ${messagePreview(
|
|
202
|
+
input.resolved?.["message"])}`,...status==="cancelled"||status==="lost"?[`${invoiceFilters.statusName(status)}\u306E\u8ACB\u6C42\u306F\u30B5\u30FC\u30D0\u304C\u9001\u4FE1\u3092\u65AD\u308A\u307E\u3059`]:[]]},summarize:body=>acknowledgement(body,"\u8ACB\u6C42\u66F8\u30E1\u30FC\u30EB\u306E\u9001\u4FE1"),raw:body=>acknowledgement(body,"\u8ACB\u6C42\u66F8\u30E1\u30FC\u30EB\u306E\u9001\u4FE1")};function paymentLinkOf(body){if(!isRecord(body)||body["result"]!==true||typeof body["checkout_url"]!=="stri\
|
|
203
|
+
ng"||body["checkout_url"]===""){throw new ApiResponseError("\u652F\u6255\u3044\u30EA\u30F3\u30AF\u306E\u5FDC\u7B54\u306B checkout_url \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return{checkout_url:body["checkout_url"],stripe_payment_status:body["stripe_payment_status"]??null}}function paymentLinkPlan(input){return{method:"POST",path:`${invoicePath(input,"payment-link")}/create-payment-link`}}var paymentLinkOperation={
|
|
204
|
+
name:"payment-link",summary:"\u8ACB\u6C42\u306E\u652F\u6255\u3044\u30EA\u30F3\u30AF\uFF08Stripe \u306E\u6C7A\u6E08\u30DA\u30FC\u30B8\uFF09\u3092\u4F5C\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",usage:"twp invoice payment-link <\u8ACB\u6C42ID> --yes",description:"POST /api/v2/sales/invoices/{id}/create-payment-link \u3067\u3001\u8ACB\u6C42\u306E\u6B8B\u984D\u3092\u652F\u6255\u3048\u308B\u6C7A\u6E08\u30DA\u30FC\u30B8\uFF08Stripe Checkout\uFF09\u3092\u4F5C\u308A\u3001URL \u3092\u51FA\u3057\u307E\u3059\u3002\n\u26A0\uFE0F URL \u3092\u53D7\u3051\u53D6\u3063\u305F\u4EBA\u306F\u5B9F\u969B\u306B\u652F\u6255\u3048\u307E\u3059\uFF08\u91D1\u984D\u306F\u8ACB\u6C42\u306E\u6B8B\u984D\u30FB\u5168\u984D\u5165\u91D1\u6E08\u307F\u306E\u8ACB\u6C42\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF09\u3002\u6C7A\u6E08\u306F\u30B5\u30FC\u30D0\u306B\n \u8A2D\u5B9A\u3055\u308C\u305F Stripe \u3067\u4F5C\u3089\u308C\u3001\u652F\u6255\u3044\u306E\u7D50\u679C\u306F\u8ACB\u6C42\u306B\u53CD\u6620\u3055\u308C\u307E\u3059\u3002\n\u652F\u6255\u3044\u5F8C\u30FB\u53D6\u6D88\u5F8C\u306E\u623B\u308A\u5148\u306F\u3001\u652F\u6255\u3046\u5074\uFF08\u53D7\u9818\u8ACB\u6C42\u66F8\u306E\u753B\u9762\uFF09\u306B\u306A\u308A\u307E\u3059\u3002\u53D6\u6D88\
|
|
205
|
+
\uFF08\u7121\u52B9\uFF09\u30FB\u5931\u6CE8\u306E\u8ACB\u6C42\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\u3002\n\u4F5C\u308B\u305F\u3073\u306B\u65B0\u3057\u3044\u30EA\u30F3\u30AF\u306B\u306A\u308A\u3001\u524D\u306E\u30EA\u30F3\u30AF\u306F\u5931\u52B9\u3057\u307E\u305B\u3093\uFF08\u3069\u3061\u3089\u3067\u3082\u652F\u6255\u3048\u307E\u3059\uFF09\u3002\u65E2\u306B\u30EA\u30F3\u30AF\u304C\u3042\u308B\u8ACB\u6C42\u3067\u306F\u305D\u306E\u65E8\u3092\u5148\u306B\u51FA\u3057\u307E\u3059\u3002\n\u51FA\u529B\u306E URL \u306F\u305D\u306E\u307E\u307E\u652F\u6255\u3044\u306B\u4F7F\u3048\u307E\u3059\u3002\u7AEF\u672B\u3084\u30ED\u30B0\u30FBAI \u306E\u4F1A\u8A71\u8A18\u9332\u306B\u6B8B\u308B\u70B9\u306B\u6CE8\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u7D50\u679C\u3092\u53D7\u3051\u53D6\u308C\u306A\u304B\u3063\u305F\uFF085xx\u30FB\u901A\u4FE1\u65AD\uFF09\u3068\u304D\u306F\u3001\u30EA\u30F3\u30AF\u304C\u4F5C\u3089\u308C\u305F\u53EF\u80FD\u6027\u304C\u3042\u308B\u65E8\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08\u6253\u3061\u76F4\u3059\u3068\u5897\u3048\u307E\u3059\uFF09\u3002\n\u9001\u308B\u524D\u306B\u8ACB\u6C42\u3092\u8AAD\u307F\u3001stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\u3002--dry-run \u306F\u30EA\u30F3\u30AF\u3092\u4F5C\u308A\u307E\u305B\u3093\uFF09\u3002",
|
|
206
|
+
destructive:true,confirmation:"\u9867\u5BA2\u304C\u652F\u6255\u3048\u308B\u6C7A\u6E08\u30EA\u30F3\u30AF\u3092\u4F5C\u308B\u64CD\u4F5C",flags:[],forbidden:SALES_FORBIDDEN,prepare:(input,ctx)=>withInvoice(input,ctx,"payment-link"),plan:paymentLinkPlan,execute:(input,ctx)=>sendOnce(paymentLinkPlan(input),ctx,"\u652F\u6255\u3044\u30EA\u30F3\u30AF\u306E\u4F5C\u6210\u306F\u9001\u4FE1\u3057\u307E\u3057\u305F\u304C\u3001\u7D50\u679C\u3092\u53D7\u3051\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30EA\u30F3\u30AF\u304C\u4F5C\u3089\u308C\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF08\u524D\u306E\u30EA\u30F3\u30AF\u306F\u5931\u52B9\u3057\u307E\u305B\u3093\uFF09\u3002"),
|
|
207
|
+
plannedNotes(input){const invoice=invoiceOf(input);const remaining=invoice["remaining_amount"];const status=text2(invoice["status"]);const existing=text2(invoice["stripe_payment_url"])!==""||invoice["stripe_payment_status"]==="pending";return[`\u652F\u6255\u3044\u30EA\u30F3\u30AF\u3092\u4F5C\u308B\u8ACB\u6C42: ${describeInvoice(invoice)}`,...typeof remaining==="number"?[` \u6B8B\u984D: ${remaining.toLocaleString("ja-JP")} \u5186`]:[],...existing?["\u3053\u306E\u8ACB\u6C42\u306B\u306F\u65E2\u306B\u652F\u6255\u3044\u30EA\u30F3\u30AF\u304C\u3042\u308A\u307E\u3059\u3002\u65B0\u3057\u304F\u4F5C\u3063\u3066\u3082\u524D\u306E\u30EA\u30F3\u30AF\u306F\u5931\u52B9\u305B\u305A\u3001\u3069\u3061\u3089\u3067\u3082\u652F\u6255\u3048\u307E\
|
|
208
|
+
\u3059"]:[],...status==="cancelled"||status==="lost"?[`${invoiceFilters.statusName(status)}\u306E\u8ACB\u6C42\u306F\u30B5\u30FC\u30D0\u304C\u30EA\u30F3\u30AF\u306E\u4F5C\u6210\u3092\u65AD\u308A\u307E\u3059`]:[]]},summarize:paymentLinkOf,raw:paymentLinkOf};var invoiceWriteOperations=[createOperation2,updateOperation2,deleteOperation2,cancelOperation,uncancelOperation,consolidateOperation,memoOperation,exportOperation,sendOperation,paymentLinkOperation];var invoiceDomain={name:"invoice",summary:"\u8CA9\u58F2\u7BA1\u7406\u306E\u8ACB\u6C42\uFF08\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FB\u53D6\u6D88\u3068\u53D6\u6D88\u89E3\u9664\u30FB\u7D71\u5408\u8ACB\u6C42\u30FB\u793E\u5185\u30E1\u30E2\u30FBCSV\uFF0FMF \u4ED5\u8A33\u306E\u51FA\u529B\u30FB\u30E1\u30FC\u30EB\u9001\u4FE1\u30FB\u652F\u6255\u3044\u30EA\u30F3\u30AF\u30FB\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\uFF09",operations:[...invoiceReadOperations,
|
|
209
|
+
...invoiceWriteOperations],subresources:[autoTemplateResource]};export{invoiceDomain};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{STATUS_VALUES,flatMasterDomain}from"./chunk-
|
|
3
|
+
import{STATUS_VALUES,flatMasterDomain}from"./chunk-MHRGKUMK.js";import"./chunk-UDPJ2IGK.js";import{JOB_TITLES_PATH}from"./chunk-ELXDRPDV.js";import"./chunk-IF2K4PM5.js";import"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-NHYMHCAT.js";import"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import"./chunk-ZN5EFDH7.js";import"./chunk-ZWVYVS2A.js";import"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";
|
|
4
4
|
import"./chunk-VSJBJXZO.js";var jobTitleDomain=flatMasterDomain({name:"job-title",label:"\u8077\u4F4D",path:JOB_TITLES_PATH,itemKey:"job_title",summary:"\u8077\u4F4D\u30DE\u30B9\u30BF\uFF08\u4E00\u89A7\u30FB\u53D6\u5F97\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",listColumns:["id","code","name","sort_order","status","position_id","base_selling_price","base_cost_price"],getColumns:["id","code","name","name_short","sort_order","status","position_id","base_selling_price","base_cost_price","description"],fields:[
|
|
5
5
|
{kind:"text",flag:"--name-short",key:"name_short",label:"\u7565\u79F0",maxChars:50,summary:"\u7565\u79F0"},{kind:"integer",flag:"--sort-order",key:"sort_order",label:"\u8868\u793A\u9806",min:0,max:9999,summary:"\u8868\u793A\u9806\uFF080\u301C9999\uFF09"},{kind:"enum",flag:"--status",key:"status",values:STATUS_VALUES,summary:"\u72B6\u614B\uFF08active: \u6709\u52B9 / inactive: \u7121\u52B9\uFF09"},{kind:"text",flag:"--description",key:"description",label:"\u8AAC\u660E",maxChars:1e3,summary:"\u8AAC\u660E"},
|
|
6
6
|
{kind:"integer",flag:"--base-selling-price",key:"base_selling_price",label:"\u57FA\u6E96\u58F2\u4FA1",min:0,summary:"\u57FA\u6E96\u58F2\u4FA1\uFF080\u4EE5\u4E0A\u306E\u6574\u6570\uFF09"},{kind:"integer",flag:"--base-cost-price",key:"base_cost_price",label:"\u57FA\u6E96\u539F\u4FA1",min:0,summary:"\u57FA\u6E96\u539F\u4FA1\uFF080\u4EE5\u4E0A\u306E\u6574\u6570\uFF09"},{kind:"text",flag:"--skill-requirements",key:"skill_requirements",label:"\u30B9\u30AD\u30EB\u8981\u4EF6",maxChars:5e3,summary:"\u30B9\u30AD\u30EB\u8981\u4EF6"},
|