@tocca-systems/twp-cli 0.38.0 → 0.40.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 +22 -0
- package/README.md +213 -3
- package/dist/{api-command-BZVUZIOB.js → api-command-7PZCMQO5.js} +4 -4
- package/dist/{app-SNRFIHTQ.js → app-PNHDMD3V.js} +4 -4
- package/dist/{backlog-33ELMSV6.js → backlog-ISEIWKMQ.js} +1 -1
- package/dist/chunk-43OMEGNH.js +94 -0
- package/dist/{chunk-HAIZHSNZ.js → chunk-6ZUVESMI.js} +1 -1
- package/dist/chunk-7ACENLLZ.js +147 -0
- package/dist/{chunk-QBA6THJ5.js → chunk-B7YCG2T7.js} +1 -1
- package/dist/{chunk-IRT7VFG4.js → chunk-BPCK5RAB.js} +1 -1
- package/dist/{chunk-ADQD5OPN.js → chunk-BZ7ULFR3.js} +15 -14
- package/dist/{chunk-ZST7XESB.js → chunk-BZAXQOLB.js} +54 -43
- package/dist/chunk-EOSSFTNG.js +4 -0
- package/dist/chunk-FKS2Z34P.js +70 -0
- package/dist/{chunk-57HDZYSN.js → chunk-H54MGGHB.js} +1 -1
- package/dist/{chunk-TAN5I2DP.js → chunk-I4ARX6NM.js} +1 -1
- package/dist/chunk-L6AHCTQZ.js +8 -0
- package/dist/chunk-PEM3HR7L.js +58 -0
- package/dist/{chunk-VECUCVIY.js → chunk-PKWMJIBM.js} +1 -1
- package/dist/{chunk-BUZKNZ45.js → chunk-UT4FACHN.js} +5 -3
- package/dist/chunk-V3GQEUYI.js +16 -0
- package/dist/{chunk-FEOST3GF.js → chunk-VK5T7ULK.js} +1 -1
- package/dist/{chunk-LS7P3IWP.js → chunk-WV3ZKUF4.js} +25 -23
- package/dist/{chunk-OHIERIBW.js → chunk-X5IVIOGL.js} +1 -1
- package/dist/chunk-XN5TUZOT.js +48 -0
- package/dist/cli.js +247 -8
- package/dist/{commands-7PGS2PTH.js → commands-PG5VVBKO.js} +1 -1
- package/dist/company-4Z4JJVA7.js +71 -0
- package/dist/{completion-3X7HPIPM.js → completion-EFGQJDIU.js} +1 -1
- package/dist/contract-BQ76SGWV.js +86 -0
- package/dist/{department-PVUB3ZPI.js → department-YHZRSWLB.js} +1 -1
- package/dist/deposit-U4AVQH5O.js +4 -0
- package/dist/estimate-U2K7DPGH.js +173 -0
- package/dist/{inquiry-CUK2LWQK.js → inquiry-5D4U6CLU.js} +1 -1
- package/dist/invoice-2VLK2BFV.js +210 -0
- package/dist/{job-title-CZRZFVUU.js → job-title-G7MIYWVA.js} +1 -1
- package/dist/{knowledge-XYLG42MB.js → knowledge-7QDC775Q.js} +1 -1
- package/dist/{leave-DL3JPO5I.js → leave-GHFJOGNC.js} +1 -1
- package/dist/{media-CMNIZUPY.js → media-XO6X3UQT.js} +1 -1
- package/dist/{notification-ULATH7AC.js → notification-SUSR5NGQ.js} +1 -1
- package/dist/{oneshot-RYWJ6ECA.js → oneshot-UGYF2PLB.js} +1 -1
- package/dist/{position-ICOGEMRG.js → position-UY33ETLX.js} +1 -1
- package/dist/{prospect-MB2OP7L2.js → prospect-G426O6XL.js} +1 -1
- package/dist/purchase-3GGAQRE6.js +214 -0
- package/dist/receivable-TNH4KCUO.js +4 -0
- package/dist/{registry-XBYUPKQQ.js → registry-ODJB7AS3.js} +1 -1
- package/dist/{render-MTSSHDAZ.js → render-F4MRN2FQ.js} +1 -1
- package/dist/{report-JL7UJB4G.js → report-UC2PCK7B.js} +1 -1
- package/dist/run-GDYEOQQK.js +4 -0
- package/dist/sales-master-ORLR5VK4.js +71 -0
- package/dist/sales-numbering-MBFKVR2C.js +4 -0
- package/dist/supplier-payment-AFJ7G6AP.js +110 -0
- package/dist/{task-CMCHUX2D.js → task-S3BBBELE.js} +2 -2
- package/dist/{user-5JXFO56G.js → user-O7H5PD4N.js} +1 -1
- package/dist/{workflow-XBUMFS2G.js → workflow-2YL2OF2Y.js} +1 -1
- package/package.json +1 -1
- package/dist/chunk-GLBQAXWC.js +0 -6
- package/dist/chunk-O4NSYHR4.js +0 -3
- package/dist/company-GMCHRVHF.js +0 -161
- package/dist/run-6JRHCC67.js +0 -4
- package/dist/sales-GJKW7VVG.js +0 -4
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{invoicePdfOperation}from"./chunk-V3GQEUYI.js";import{invoiceNoRuleResource}from"./chunk-FKS2Z34P.js";import"./chunk-7ACENLLZ.js";import"./chunk-I6DWJXPC.js";import{readBody}from"./chunk-HGTG5XQ7.js";import{featureLicenseGuidance,invoiceFilters,invoiceReadOperations,licenseForbidden}from"./chunk-BZ7ULFR3.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{booleanText,isoDate}from"./chunk-UDPJ2IGK.js";import{SALES_INVOICES_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,
|
|
4
|
+
isExactNumericId,resolveNamed}from"./chunk-BZAXQOLB.js";import{ApiError}from"./chunk-IF2K4PM5.js";import"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";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,
|
|
5
|
+
withResolved}from"./chunk-ZN5EFDH7.js";import{acknowledgement,isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";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\u3002twp estimate format list \u306E id\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\u3002twp business-place / seal-impression list \u306E id\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\u3002twp business-place / seal-impression / payee list \u306E id\uFF09"],
|
|
11
|
+
["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"],["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.\
|
|
12
|
+
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"],["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"],
|
|
13
|
+
["detail.list[].tax",'\u5FC5\u9808\u3002"10" / "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"],
|
|
14
|
+
["estimate_manage_content / invoice_manage_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"]];
|
|
15
|
+
var CONTENT_MAX_CHARS=1e6;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={
|
|
16
|
+
name:"--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 \
|
|
17
|
+
\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\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\u3002twp estimate format create\uFF08\u307E\u305F\u306F\u753B\u9762\uFF09\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"]:
|
|
50
|
+
formats.length===1?[`\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306F\u300C${text(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["pag\
|
|
51
|
+
e_sum"]:void 0;if(typeof pageSum==="number"&&pageSum>1)lines.push(` \uFF08\u5148\u982D ${formats.length} \u4EF6\u3060\u3051\u3092\u51FA\u3057\u3066\u3044\u307E\u3059\u3002\u6B8B\u308A\u306F twp estimate format list --all\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\u30EB\u30FC\u30EB\u306E ID\uFF08twp invoice no-rule list \u306E id\u3002\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\
|
|
103
|
+
\u307E\u3059\uFF08estimate_format_id \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\u3002twp business-place / seal-impression / payee list \u306E id\uFF09"],["status","\u4F5C\u6210\u306F new\uFF08\u4F5C\u6210\u4E2D\uFF09/ create_co\
|
|
104
|
+
mpleted\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"],["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\
|
|
105
|
+
\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 \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"],
|
|
106
|
+
["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 / 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'],["de\
|
|
107
|
+
tails[].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"],["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\
|
|
108
|
+
\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=["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",
|
|
109
|
+
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",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 \
|
|
110
|
+
\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";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\
|
|
111
|
+
\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}`,"\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")}
|
|
112
|
+
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){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\
|
|
113
|
+
\u3002`)}return data}function serverMessage2(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function syncedNotes(body,what){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){
|
|
114
|
+
const no=text2(invoice["invoice_no"]);const total=typeof invoice["total"]==="number"?`\u7A0E\u8FBC ${invoice["total"].toLocaleString("ja-JP")} \u5186`:"";const status=text2(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){
|
|
115
|
+
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}\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}`)}});
|
|
116
|
+
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}\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===
|
|
117
|
+
"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":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"],
|
|
118
|
+
"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 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\
|
|
119
|
+
-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"))}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,
|
|
120
|
+
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["estimate_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")}
|
|
121
|
+
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");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")}
|
|
122
|
+
return notes}function todayJst(now=new Date){return new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Tokyo"}).format(now)}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(
|
|
123
|
+
body)?body["list"]:void 0;if(!isRecord(body)||body["result"]!==true||!Array.isArray(list)||!list.every(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:{
|
|
124
|
+
page_limit:100,page_no:1}};function createSkeleton2(body){const rules=rulesOf(body);const today=todayJst();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;
|
|
125
|
+
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"]: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`]:["invoic\
|
|
126
|
+
e_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(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 invoice no-rule list --all\uFF09`]:
|
|
127
|
+
[]];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",...fieldNotes2("create")]}function updateSkeleton2(invoice){
|
|
128
|
+
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){const recipients=invoice["recipients"];const deleted=Array.
|
|
129
|
+
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 / recipients \u3092\u9001\u308B\u3068\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF09",
|
|
130
|
+
" 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} \u4EBA\u306F\u5916\u3057\u307E\u3057\u305F\uFF08\u9001\u308A\u8FD4\u3059\u3068\u30B5\u30FC\u30D0\u304C\u65AD\u308B\u305F\u3081\uFF09`]:
|
|
131
|
+
[],...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(input,"body"))}function createPlan2(input){if(input.flags.has(SKELETON_FLAG2.name))return RULES_PLAN;return{method:"POST",path:PATH2,
|
|
132
|
+
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.name)){throw new UsageError("--generate-cli-skeleton \u3068 --content-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",
|
|
133
|
+
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-skeleton \u3067\u51FA\u305B\u307E\u3059\u3002`)}return withResolved(input,{body:JSON.stringify(content)})}var createOperation2={name:"create",
|
|
134
|
+
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
|
|
135
|
+
\uFF08\u627F\u8A8D\u7533\u8ACB\u306F twp invoice update \u3067 status \u3092 in_progress \u306B\u3057\u307E\u3059\uFF09\u3002
|
|
136
|
+
|
|
137
|
+
${CONTENT_HELP2}
|
|
138
|
+
|
|
139
|
+
--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
|
|
140
|
+
\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
|
|
141
|
+
\u4F8B: twp invoice create --generate-cli-skeleton --output json > invoice.json
|
|
142
|
+
|
|
143
|
+
\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\
|
|
144
|
+
\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\
|
|
145
|
+
\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\
|
|
146
|
+
\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
|
|
147
|
+
\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
|
|
148
|
+
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
|
|
149
|
+
\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
|
|
150
|
+
|
|
151
|
+
${CONTENT_HELP2}
|
|
152
|
+
|
|
153
|
+
--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
|
|
154
|
+
\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
|
|
155
|
+
\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)=>({
|
|
156
|
+
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(
|
|
157
|
+
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,
|
|
158
|
+
"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",
|
|
159
|
+
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")}
|
|
160
|
+
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",
|
|
161
|
+
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\
|
|
162
|
+
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\
|
|
163
|
+
\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",
|
|
164
|
+
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");
|
|
165
|
+
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\
|
|
166
|
+
\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",
|
|
167
|
+
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\
|
|
168
|
+
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.
|
|
169
|
+
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,
|
|
170
|
+
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));
|
|
171
|
+
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){
|
|
172
|
+
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(
|
|
173
|
+
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\
|
|
174
|
+
\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",
|
|
175
|
+
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),
|
|
176
|
+
...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-\
|
|
177
|
+
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"]},
|
|
178
|
+
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>"},
|
|
179
|
+
{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,
|
|
180
|
+
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",
|
|
181
|
+
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
|
|
182
|
+
\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
|
|
183
|
+
\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,
|
|
184
|
+
"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:"\
|
|
185
|
+
<\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.
|
|
186
|
+
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`,
|
|
187
|
+
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",
|
|
188
|
+
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\
|
|
189
|
+
\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",
|
|
190
|
+
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(
|
|
191
|
+
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");
|
|
192
|
+
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
|
|
193
|
+
`);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=[{
|
|
194
|
+
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===
|
|
195
|
+
""?"":`\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.
|
|
196
|
+
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",
|
|
197
|
+
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){
|
|
198
|
+
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\
|
|
199
|
+
>]... [--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\
|
|
200
|
+
\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,
|
|
201
|
+
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(
|
|
202
|
+
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(
|
|
203
|
+
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\
|
|
204
|
+
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={
|
|
205
|
+
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\
|
|
206
|
+
\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",
|
|
207
|
+
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"),
|
|
208
|
+
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\
|
|
209
|
+
\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\u5E33\u7968 PDF\uFF08\u8ACB\u6C42\u66F8\u30FB\u7D0D\u54C1\u66F8\u30FB\u691C\u53CE\u66F8\uFF09\u30FB\u30E1\u30FC\u30EB\u9001\u4FE1\u30FB\u652F\u6255\u3044\u30EA\u30F3\u30AF\u30FB\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30FB\u756A\u53F7\u30EB\u30FC\u30EB\uFF09",
|
|
210
|
+
operations:[...invoiceReadOperations,...invoiceWriteOperations,invoicePdfOperation],subresources:[autoTemplateResource,invoiceNoRuleResource]};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-BPCK5RAB.js";import"./chunk-UDPJ2IGK.js";import{JOB_TITLES_PATH}from"./chunk-BZAXQOLB.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"},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{dateFlag}from"./chunk-3RAGOW6X.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{boundedText}from"./chunk-UDPJ2IGK.js";import"./chunk-
|
|
3
|
+
import{dateFlag}from"./chunk-3RAGOW6X.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{boundedText}from"./chunk-UDPJ2IGK.js";import"./chunk-BZAXQOLB.js";import"./chunk-IF2K4PM5.js";import{ResolveError,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-5R4SEO3I.js";
|
|
4
4
|
import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-ZN5EFDH7.js";import{isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";var MAX_BLOCK_DEPTH=10;var NAMED_ENTITIES={nbsp:" ",lt:"<",gt:">",quot:'"',apos:"'",amp:"&"};function decodeEntities(text2){return text2.replace(/&(#x[0-9a-f]{1,8}|#\d{1,8}|[a-z]{1,8});/gi,(whole,ref)=>{if(ref.startsWith("#")){const code=ref[1]==="x"||ref[1]==="X"?Number.parseInt(ref.slice(2),16):Number.parseInt(ref.slice(1),10);return Number.isInteger(code)&&code>0&&code<=1114111?String.fromCodePoint(code):whole}return NAMED_ENTITIES[ref.toLowerCase()]??whole})}var HTML_TAG_NAMES=new Set(["a","\
|
|
5
5
|
abbr","article","aside","audio","b","blockquote","body","br","caption","cite","code","col","colgroup","dd","del","details","div","dl","dt","em","figcaption","figure","font","footer","h1","h2","h3","h4","h5","h6","head","header","hr","html","i","iframe","img","input","ins","kbd","label","li","main","mark","meta","nav","ol","p","pre","q","s","samp","script","section","small","source","span","strike","strong","style","sub","summary","sup","table","tbody","td","tfoot","th","thead","title","tr","u","\
|
|
6
6
|
ul","var","video"]);var ATTRIBUTES=/^(?:\s+[a-z_:][-\w:.]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s"'=<>`]+))?)*\s*\/?$/i;function tokenizeHtml(html){const tokens=[];let text2="";let i=0;let nextLt=html.indexOf("<");let nextGt=-2;while(nextLt!==-1){text2+=html.slice(i,nextLt);if(nextGt===-2||nextGt!==-1&&nextGt<nextLt)nextGt=html.indexOf(">",nextLt);const following=html.indexOf("<",nextLt+1);if(nextGt===-1||following!==-1&&following<nextGt){text2+="<";i=nextLt+1;nextLt=following;continue}const inner=html.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-2M2JQ23W.js";import{applyInstancePlan,createInstancePlan,formColumns,writtenInstance}from"./chunk-
|
|
3
|
+
import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-2M2JQ23W.js";import{applyInstancePlan,createInstancePlan,formColumns,writtenInstance}from"./chunk-X5IVIOGL.js";import{assertMonthsOpen}from"./chunk-GPIIXDEX.js";import{dateFlag}from"./chunk-3RAGOW6X.js";import"./chunk-HGTG5XQ7.js";import"./chunk-BZAXQOLB.js";import{ApiError}from"./chunk-IF2K4PM5.js";import{UUID_RE}from"./chunk-GMBJTG6A.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";
|
|
4
4
|
import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-NHYMHCAT.js";import"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";import{isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";var LIST_USAGE="twp leave list";var GRANTS_USAGE="twp leave grants [<\u30E6\u30FC\u30B6\u30FC> | --user <\u30E6\u30FC\u30B6\u30FC>]";var USAGE_COLUMNS=["used_date","type_label","days","hours","status_label","reason","is_post_application","id"];var GRANT_COLUMNS=["grant_date","type_label","days","remaining_days","remaining_hours","expiry_date","status_label","reason","id"];function noArgs(input,operation){if(input.args.length>0){throw new UsageError(`${operation} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.
|
|
5
5
|
args.join(" ")}`,`twp leave ${operation} help`)}}function summaryBody(body){if(!isRecord(body)||!isRecord(body["summary"])){throw new ApiResponseError("\u6709\u7D66\u30B5\u30DE\u30EA\u306E\u5FDC\u7B54\u306B summary \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function usagesBody(body){if(!isRecord(body)||!Array.isArray(body["usages"])){throw new ApiResponseError("\u6709\u7D66\u306E\u53D6\u5F97\u5C65\u6B74\u306E\u5FDC\u7B54\u306B usages \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
6
6
|
return body}function grantsBody(body){if(!isRecord(body)||!Array.isArray(body["grants"])){throw new ApiResponseError("\u6709\u7D66\u306E\u4ED8\u4E0E\u5C65\u6B74\u306E\u5FDC\u7B54\u306B grants \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function listBody(body){const combined=isRecord(body)?body:{};return{summary:summaryBody(combined["summary"]),usages:usagesBody(combined["usages"])}}async function list(input,ctx){
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{contentTypeFor,inspectLocalFile}from"./chunk-
|
|
3
|
+
import{contentTypeFor,inspectLocalFile}from"./chunk-PKWMJIBM.js";import{checkUploadQuota}from"./chunk-DDKZ5IPT.js";import"./chunk-BZAXQOLB.js";import"./chunk-IF2K4PM5.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-NHYMHCAT.js";import"./chunk-GY7KI5E5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";
|
|
4
4
|
import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";import{isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";import crypto from"crypto";import fs from"fs";import path from"path";var SCOPE_PERSONAL="personal";var SCOPE_PROJECT="project";var LIST_COLUMNS=["id","file_name","content_type","file_size","folder_id","public_status","updated_at"];var UPLOAD_COLUMNS=["id","file_name","content_type","file_size","folder_id","scope","content_hash"];var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var NAME_FLAG={
|
|
5
5
|
name:"--name",summary:"\u4FDD\u5B58\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u540D\uFF08\u7701\u7565\u6642\u306F\u30ED\u30FC\u30AB\u30EB\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u3002\u540C\u540D\u304C\u3042\u308B\u3068\u30B5\u30FC\u30D0\u304C\u5225\u540D\u306B\u3057\u307E\u3059\uFF09",takesValue:true,placeholder:"<\u30D5\u30A1\u30A4\u30EB\u540D>"};var CONTENT_TYPE_FLAG={name:"--content-type",summary:"Content-Type\uFF08\u7701\u7565\u6642\u306F\u62E1\u5F35\u5B50\u304B\u3089\u63A8\u5B9A\u3002\u4E0D\u660E\u306A\u3089 application/octet-stream\uFF09",
|
|
6
6
|
takesValue:true,placeholder:"<\u578B>"};var FOLDER_FLAG={name:"--folder",summary:"\u30D5\u30A9\u30EB\u30C0ID\uFF08\u7701\u7565\u6642\u306F\u30B9\u30B3\u30FC\u30D7\u306E\u6700\u4E0A\u4F4D\uFF09",takesValue:true,placeholder:"<\u30D5\u30A9\u30EB\u30C0ID>"};var MEDIA_PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u5BFE\u8C61\u306B\u3059\u308B\uFF08\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF09\u3002\u7701\u7565\u6642\u306F\u81EA\u5206\u306E\u500B\u4EBA\u30D5\u30A1\u30A4\u30EB",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{boundedText}from"./chunk-UDPJ2IGK.js";import{NOTIFICATIONS_PATH}from"./chunk-
|
|
3
|
+
import{boundedText}from"./chunk-UDPJ2IGK.js";import{NOTIFICATIONS_PATH}from"./chunk-BZAXQOLB.js";import"./chunk-IF2K4PM5.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-NHYMHCAT.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-ZN5EFDH7.js";
|
|
4
4
|
import{isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";var LABEL="\u901A\u77E5";var LIST_COLUMNS=["id","datetime","category_name","status_name","title"];var GET_COLUMNS=["id","datetime","category","category_name","status_name","read_time","title","content","url"];var CATEGORY_FLAG={name:"--category",summary:"\u901A\u77E5\u30AB\u30C6\u30B4\u30EA\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u30AD\u30FC\u304B\u540D\u524D\u3002twp notification categories \u3067\u4E00\u89A7\u3067\u304D\u308B\uFF09",takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA>"};var CATEGORY_HELP="\
|
|
5
5
|
--category \u306F\u30AB\u30C6\u30B4\u30EA\u306E\u30AD\u30FC\uFF08workflow_approval\uFF09\u304B\u540D\u524D\uFF08\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u627F\u8A8D\u4F9D\u983C\uFF09\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\u30AB\u30C6\u30B4\u30EA\u4E00\u89A7\u3068\u7167\u5408\u3059\u308B\u306E\u3067\u3001\u6253\u3061\u9593\u9055\u3048\u305F\u30AB\u30C6\u30B4\u30EA\u3092\u300C0\u4EF6\u300D\u3068\u3057\u3066\u8FD4\u3059\u3053\u3068\u306F\u3042\u308A\u307E\u305B\u3093\uFF08\u4E00\u89A7\u306F\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3002";
|
|
6
6
|
async function resolveCategory(input,ctx){const raw=nonEmpty(input.flags,CATEGORY_FLAG.name);if(raw===void 0)return input;return withResolved(input,{category:(await ctx.resolver.notificationCategory(raw.trim())).id})}function noArgs(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(" ")}`,`twp notification ${op} help`)}}function notificationId(input,op){const[raw,...rest]=input.args;const id=raw?.trim()??
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{activateModeFiles,activatePermissionSettings,buildResidentSet,buildSystemPrompt,createAuditLogger,createTwpToolkit,currentBranch,displayCwd,residentInputs,runTurn}from"./chunk-
|
|
3
|
+
import{activateModeFiles,activatePermissionSettings,buildResidentSet,buildSystemPrompt,createAuditLogger,createTwpToolkit,currentBranch,displayCwd,residentInputs,runTurn}from"./chunk-6ZUVESMI.js";import"./chunk-NZ7WI4RZ.js";import"./chunk-UT4FACHN.js";import"./chunk-BZAXQOLB.js";import"./chunk-IF2K4PM5.js";import"./chunk-GMBJTG6A.js";import{RelayError,createRuntime,pickModel}from"./chunk-PWXXCLVZ.js";import"./chunk-D233KKXW.js";import"./chunk-XNLIEUAW.js";
|
|
4
4
|
import"./chunk-J7QYPKVK.js";import{checkMinSupportedVersion,enforceMinSupportedVersion,floorNeedsRefresh}from"./chunk-DXXFUNYN.js";import"./chunk-4VZKNEVN.js";import{getMode}from"./chunk-NAUH75MM.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-N2UVRM3Z.js";import"./chunk-II5RVJQN.js";import"./chunk-7WSNIXTQ.js";import"./chunk-PMOUHEJQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";async function runOneShot(opts,deps={}){const out=deps.out??(text=>void process.stdout.write(stripTerminalControls(text)));const err=deps.err??(text=>void process.stderr.write(stripTerminalControls(text)));activateModeFiles(err);const permissionLayers=activatePermissionSettings(err,{...opts.allowedTools?{allowedTools:opts.allowedTools}:{},...opts.disallowedTools?{disallowedTools:opts.disallowedTools}:{}});const prompt=opts.fromStdin?await(deps.readStdin??readStdin)():opts.prompt;if(prompt.trim()===
|
|
5
5
|
""){err('\u30D7\u30ED\u30F3\u30D7\u30C8\u304C\u7A7A\u3067\u3059\u3002`twp -p "\u8CEA\u554F"`\uFF08`-p -` \u3067\u6A19\u6E96\u5165\u529B\uFF09\n');return 2}const runtime=deps.runtime??createRuntime({...opts.profile!==void 0?{profile:opts.profile}:{},...opts.model!==void 0?{model:opts.model}:{},cliVersion:opts.version});const cachedFloor=runtime.loadCachedFloor();if(await checkMinSupportedVersion({current:opts.version,cachedFloor:cachedFloor.minSupportedVersion,refresh:async()=>(await runtime.loadCatalog()).
|
|
6
6
|
minSupportedVersion,write:err})){return 1}if(!runtime.loggedIn){err("\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u307E\u305B\u3093\u3002`twp login` \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n");return 1}let model=runtime.configuredModel??"";let catalog=null;if(model===""){catalog=await runtime.loadCatalog();const picked=pickModel(catalog,void 0);model=picked.model;if(catalog.source!=="server"){err(`\u26A0 \u30E2\u30C7\u30EB\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081 ${model}\
|
|
@@ -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,booleanQuery,flatMasterDomain}from"./chunk-
|
|
3
|
+
import{STATUS_VALUES,booleanQuery,flatMasterDomain}from"./chunk-BPCK5RAB.js";import"./chunk-UDPJ2IGK.js";import{POSITIONS_PATH}from"./chunk-BZAXQOLB.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";
|
|
4
4
|
import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";var positionDomain=flatMasterDomain({name:"position",label:"\u5F79\u8077",path:POSITIONS_PATH,itemKey:"position",summary:"\u5F79\u8077\u30DE\u30B9\u30BF\uFF08\u4E00\u89A7\u30FB\u53D6\u5F97\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",listColumns:["id","code","name","rank","is_manager","status","user_count"],getColumns:["id","code","name","name_short","rank","is_manager","status","description"],fields:[{kind:"text",flag:"--name-short",key:"name_short",label:"\u7565\u79F0",maxChars:50,
|
|
5
5
|
summary:"\u7565\u79F0"},{kind:"integer",flag:"--rank",key:"rank",label:"\u30E9\u30F3\u30AF",min:0,max:9999,summary:"\u30E9\u30F3\u30AF\uFF080\u301C9999\u3002\u5927\u304D\u3044\u307B\u3069\u4E0A\u4F4D\uFF09"},{kind:"boolean",flag:"--manager",key:"is_manager",summary:"\u7BA1\u7406\u8077\u304B\uFF08true / false\uFF09"},{kind:"boolean",flag:"--can-view-personal-info",key:"can_view_personal_info",summary:"\u90E8\u4E0B\u306E\u500B\u4EBA\u60C5\u5831\u3092\u95B2\u89A7\u3067\u304D\u308B\u304B\uFF08true / false\uFF09"},
|
|
6
6
|
{kind:"boolean",flag:"--can-view-emergency-contact",key:"can_view_emergency_contact",summary:"\u90E8\u4E0B\u306E\u7DCA\u6025\u9023\u7D61\u5148\u3092\u95B2\u89A7\u3067\u304D\u308B\u304B\uFF08true / false\uFF09"},{kind:"boolean",flag:"--can-view-work-tel",key:"can_view_work_tel",summary:"\u90E8\u4E0B\u306E\u696D\u52D9\u7528\u96FB\u8A71\u756A\u53F7\u3092\u95B2\u89A7\u3067\u304D\u308B\u304B\uFF08true / false\uFF09"},{kind:"enum",flag:"--status",key:"status",values:STATUS_VALUES,summary:"\u72B6\u614B\uFF08active: \u6709\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{CUSTOMER_LICENSE,INTERACTION_FIELDS,INTERACTION_TYPES,dataOf,levelForbidden}from"./chunk-
|
|
3
|
+
import{CUSTOMER_LICENSE,INTERACTION_FIELDS,INTERACTION_TYPES,dataOf,levelForbidden}from"./chunk-H54MGGHB.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-BPCK5RAB.js";import"./chunk-PKWMJIBM.js";import"./chunk-DDKZ5IPT.js";import"./chunk-I6DWJXPC.js";import"./chunk-BZ7ULFR3.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import"./chunk-UDPJ2IGK.js";import{PROSPECTS_PATH}from"./chunk-BZAXQOLB.js";import{
|
|
4
4
|
MultipartBody}from"./chunk-IF2K4PM5.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-GY7KI5E5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";import{acknowledgement,
|
|
5
5
|
isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var VIEW_FORBIDDEN=levelForbidden(CUSTOMER_LICENSE,"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3092\u898B\u308B\u306B\u306F\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");var EDIT_FORBIDDEN=levelForbidden(CUSTOMER_LICENSE,"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u767B\u9332\u30FB\u66F4\u65B0\u306B\u306F\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
|
|
6
6
|
function adminForbidden(what){return levelForbidden(CUSTOMER_LICENSE,`${what}\u306B\u306F\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\uFF08\u300C\u7DE8\u96C6\u8005\u300D\u3067\u306F\u3067\u304D\u307E\u305B\u3093\uFF09\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}var ASSIGNABLE_STATUSES=["new","approaching","responded","appointment","reject\
|