### Install Pacioli using bunx
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
This command initializes a new Pacioli project in the current directory without requiring a global installation. It sets up the necessary directory structure and example files.
```bash
mkdir my-invoices && cd my-invoices
bunx pacioli init
```
--------------------------------
### Pacioli Development Setup
Source: https://github.com/tetipong2542/inv-generate/blob/main/README.md
Commands for setting up the development environment for Pacioli. This includes installing dependencies, running tests, and starting the development server for initialization tasks.
```bash
bun install
bun test
bun run dev init
```
--------------------------------
### Copy Freelancer Profile Example
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Copies the example freelancer configuration file to create a new configuration file. This is the initial step for setting up your freelancer details.
```bash
cp config/freelancer.example.json config/freelancer.json
```
--------------------------------
### Initialize Pacioli Project
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Initializes a new Pacioli project, creating a standard directory structure for templates, examples, customer data, configuration, and output. The `--force` option can overwrite existing files.
```bash
pacioli init
pacioli init --force
```
--------------------------------
### Globally Install and Use Pacioli
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Installs Pacioli globally, allowing direct use of the 'pacioli' command without 'bunx'. This is useful for frequent users. It also shows the basic command for generating documents.
```bash
bun install -g pacioli
pacioli init
pacioli generate invoice data.json --customer customer.json
```
--------------------------------
### Bash for Installing Pacioli Dependencies
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Command to install project dependencies using Bun, a fast JavaScript runtime. This is required after cloning the repository.
```bash
# Install dependencies
bun install
```
--------------------------------
### Example Unit Test Structure with Bun Test
Source: https://github.com/tetipong2542/inv-generate/blob/main/TEST.md
Provides a complete example of a unit test file using the Bun test runner. It includes necessary imports, describe blocks for test suites, and individual test cases for normal and edge case inputs.
```typescript
import { describe, test, expect } from "bun:test";
import { myFunction } from "../src/myModule";
describe("myFunction", () => {
test("handles normal input", () => {
const result = myFunction("input");
expect(result).toBe("expected");
});
test("handles edge case", () => {
const result = myFunction("");
expect(result).toBe("default");
});
});
```
--------------------------------
### Bash for Pacioli Help Commands
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Shows how to access help documentation for the Pacioli CLI tool and its subcommands. This is essential for understanding available options and usage.
```bash
pacioli --help # Main help
pacioli init --help # Init command help
pacioli generate --help # Generate command help
```
--------------------------------
### Install Dependencies with Bun
Source: https://github.com/tetipong2542/inv-generate/blob/main/CLAUDE.md
Installs all necessary project dependencies using the Bun package manager. This is the first step before running any other development commands.
```bash
bun install
```
--------------------------------
### Bash for Cloning Pacioli Repository
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Instructions for cloning the Pacioli project repository from GitHub using Git. This is the first step for local development.
```bash
# Clone repository
git clone https://github.com/peerasak-u/pacioli.git
cd pacioli
```
--------------------------------
### Initialize Pacioli Project
Source: https://github.com/tetipong2542/inv-generate/blob/main/README.md
Initializes a new Pacioli project, setting up the necessary configuration files and directory structure for generating financial documents. This is the first step to start using Pacioli.
```bash
bunx pacioli init
```
--------------------------------
### Pre-commit Hook for Running Tests
Source: https://github.com/tetipong2542/inv-generate/blob/main/TEST.md
A shell script example for a pre-commit hook that automatically runs Bun tests before allowing a commit. This ensures that tests are executed consistently.
```bash
#!/bin/sh
bun test || exit 1
```
--------------------------------
### CSS for Customizing Document Appearance
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Provides an example of CSS to customize the appearance of documents, specifically changing the background color of a header element. This allows for branding and visual adjustments.
```css
.header {
background-color: #your-color;
}
```
--------------------------------
### Bash for Publishing Pacioli to npm
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Commands for logging into npm and publishing the Pacioli package. This is the final step for releasing new versions.
```bash
# Login to npm
npm login
# Publish
bun publish
```
--------------------------------
### Generate Invoice with Multiple Profiles
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Demonstrates how to generate an invoice using different freelancer profiles. This allows for managing multiple business identities or client-specific configurations.
```bash
pacioli generate invoice data.json --customer customer.json --profile config/personal.json
pacioli generate invoice data.json --customer customer.json --profile config/company.json
```
--------------------------------
### Initialize Pacioli Project CLI
Source: https://context7.com/tetipong2542/inv-generate/llms.txt
Initializes a new Pacioli project, creating necessary directories and files for templates, examples, customer data, configuration, and output. The `--force` flag can be used to overwrite existing files.
```bash
bunx pacioli init
bunx pacioli init --force
```
--------------------------------
### Bash for Running Pacioli Locally
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Commands to run the Pacioli CLI tool locally for initialization and document generation. These commands are used for testing and development.
```bash
# Run locally
bun run src/cli.ts init
bun run src/cli.ts generate invoice examples/invoice.json --customer customers/acme-corp.json
```
--------------------------------
### Bash for Linking Pacioli Globally
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Instructions for linking the locally developed Pacioli package globally, allowing it to be run as a command-line tool from any directory. This is useful for testing the CLI.
```bash
# Link for global testing
bun link
pacioli init
```
--------------------------------
### TypeScript Utility Function Example
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Illustrates a utility function within the Pacioli project, specifically `src/utils.ts`, which handles date conversions. This function is responsible for converting dates to the Thai Buddhist Era format.
```typescript
// Example from src/utils.ts (conceptual)
function convertToThaiBuddhistEra(dateString: string): string {
// ... implementation details ...
return "";
}
```
--------------------------------
### HTML Template Syntax for Data Injection
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Demonstrates how to use `{{placeholder}}` syntax within HTML templates to inject dynamic data. This is a core feature for creating personalized documents.
```html
เลขที่: {{documentNumber}}
วันที่: {{issueDate}}
```
--------------------------------
### Invoice Document Structure (JSON)
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Example structure for an invoice document, used for billing completed work. It includes required fields like document number, dates, and items, along with optional tax and payment details.
```json
{
"documentNumber": "auto",
"issueDate": "2024-11-12",
"dueDate": "2024-11-30",
"items": [
{
"description": "Website Development",
"quantity": 1,
"unit": "โครงการ",
"unitPrice": 50000
}
],
"taxType": "withholding",
"taxRate": 0.03,
"taxLabel": "หัก ณ ที่จ่าย 3%",
"paymentTerms": [
"ชำระเต็มจำนวนภายใน 30 วัน",
"โอนเงินเข้าบัญชีธนาคาร"
],
"notes": "ขอบคุณที่ใช้บริการครับ"
}
```
--------------------------------
### Bash for Running Pacioli Tests
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Commands to execute the test suite for the Pacioli project using Bun. This includes running all tests, specific files, or tests by name.
```bash
# Run all tests
bun test
# Run specific test file
bun test tests/utils.test.ts
# Run tests by name
bun test -t "calculates withholding tax correctly"
```
--------------------------------
### Quotation Document Structure (JSON)
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Example structure for a quotation document, used for providing price estimates before work begins. It requires document number, dates, and items, with optional fields for tax and payment terms.
```json
{
"documentNumber": "auto",
"issueDate": "2024-11-12",
"validUntil": "2024-12-31",
"items": [
{
"description": "E-commerce Website",
"quantity": 1,
"unit": "โครงการ",
"unitPrice": 150000
}
],
"taxType": "vat",
"taxRate": 0.07,
"taxLabel": "VAT 7%",
"paymentTerms": [
"เริ่มงาน: 30%",
"จบ Phase 1: 30%",
"จบงาน: 40%"
],
"notes": "ใบเสนอราคานี้สำหรับโครงการ e-commerce ที่มีคุณสมบัติตามที่กำหนด"
}
```
--------------------------------
### Edit HTML Templates
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Lists the default HTML templates available for customization after project initialization. These templates control the visual theme of generated documents.
```bash
templates/
├── invoice.html # Dark blue theme
├── quotation.html # Purple theme
└── receipt.html # Green theme
```
--------------------------------
### Run Pacioli CLI Commands
Source: https://github.com/tetipong2542/inv-generate/blob/main/agent-skills/pacioli-skills/SKILL.md
Execute Pacioli commands to manage financial document generation. The primary command is `pacioli [args]`, with subcommands like `init`, `generate`, `help`, and `version` for project setup, document creation, and utility functions.
```bash
bunx pacioli [args]
```
--------------------------------
### Arrange-Act-Assert Pattern for Tests
Source: https://github.com/tetipong2542/inv-generate/blob/main/TEST.md
Illustrates the Arrange-Act-Assert (AAA) pattern for structuring unit tests. This pattern helps in organizing test setup, execution, and verification steps for clarity and maintainability.
```typescript
test("example test", () => {
// Arrange - set up test data
const data = { ... };
// Act - call the function
const result = someFunction(data);
// Assert - verify the result
expect(result).toBe(expected);
});
```
--------------------------------
### Bash for Generating Documents with Custom Profiles
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Illustrates how to use the `--profile` flag with the `pacioli generate` command to specify different configuration profiles for generating documents. This is useful for managing different environments like development and production.
```bash
# Test documents
pacioli generate invoice test.json --customer test-customer.json --profile config/freelancer-dev.json
# Real documents
pacioli generate invoice invoice.json --customer real-customer.json --profile config/freelancer-prod.json
```
--------------------------------
### HTML for Adding a Company Logo
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Shows how to include a company logo within an HTML template using the `
` tag. This is a common customization for professional documents.
```html
```
--------------------------------
### Bash for Custom Output File Naming
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Demonstrates how to use the `--output` flag with the `pacioli generate` command to specify a custom name and path for the generated PDF file. This allows for organized storage of output documents.
```bash
pacioli generate invoice invoice.json --customer acme.json --output "invoices/2024/11/acme-nov-2024.pdf"
```
--------------------------------
### Test Naming Conventions in TypeScript
Source: https://github.com/tetipong2542/inv-generate/blob/main/TEST.md
Demonstrates clear and descriptive naming conventions for unit tests in TypeScript, aiding in understanding test purpose and failure reasons. These examples follow standard testing library patterns.
```typescript
test("calculates withholding tax correctly", () => { ... })
test("rejects missing customer name", () => { ... })
```
--------------------------------
### Configure Freelancer Profile
Source: https://github.com/tetipong2542/inv-generate/blob/main/CLAUDE.md
Before the first use of the invoice generation tool, you need to create a configuration file for your freelancer profile. This involves copying an example file and editing it with your specific business information.
```bash
cp config/freelancer.example.json config/freelancer.json
# Edit with your information
```
--------------------------------
### Enable Auto-Numbering for Documents
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Configures Pacioli to automatically generate sequential document numbers. The numbering resets monthly and uses prefixes based on the document type (e.g., INV, QT, REC).
```json
{
"documentNumber": "auto",
"issueDate": "2024-11-12",
...
}
```
--------------------------------
### Bash Script for Batch Document Generation
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
A shell script demonstrating how to generate multiple documents in batches using the `pacioli generate` command. It iterates through JSON files in an 'invoices' directory.
```bash
#!/bin/bash
for file in invoices/*.json; do
pacioli generate invoice "$file" --customer "$(jq -r '.customerPath' "$file")"
done
```
--------------------------------
### Customer Management API Operations
Source: https://context7.com/tetipong2542/inv-generate/llms.txt
This section covers the CRUD operations for managing customer data via the API. It includes examples for listing, retrieving, creating, updating, and deleting customers.
```bash
# List all customers
curl http://localhost:3001/api/customers
# Response: { "success": true, "data": [{ "id": "acme-corp", "name": "...", ... }] }
# Get single customer
curl http://localhost:3001/api/customers/acme-corp
# Response: { "success": true, "data": { "id": "acme-corp", "name": "...", ... } }
# Create new customer
curl -X POST http://localhost:3001/api/customers \
-H "Content-Type: application/json" \
-d '{
"id": "new-client",
"name": "New Client Name",
"company": "New Client Co., Ltd.",
"address": "789 New Street, Bangkok 10100",
"taxId": "0-1234-56789-01-2",
"phone": "02-333-4444",
"email": "contact@newclient.com"
}'
# Response: { "success": true, "data": { "id": "new-client", ... } }
# Update customer
curl -X PUT http://localhost:3001/api/customers/new-client \
-H "Content-Type: application/json" \
-d '{
"name": "Updated Client Name",
"company": "Updated Co., Ltd.",
"address": "Updated Address",
"taxId": "0-1234-56789-01-2"
}'
# Delete customer
curl -X DELETE http://localhost:3001/api/customers/new-client
# Response: { "success": true, "message": "Customer deleted successfully" }
```
--------------------------------
### Initialize Pacioli Project Structure
Source: https://github.com/tetipong2542/inv-generate/blob/main/agent-skills/pacioli-skills/SKILL.md
Set up a new Pacioli project by creating the necessary directory structure, including folders for configuration, customer data, and HTML templates. This command ensures all required files and directories are in place for document generation.
```bash
mkdir my-financial-docs
cd my-financial-docs
bunx pacioli init
```
--------------------------------
### Run All Tests (Bash)
Source: https://github.com/tetipong2542/inv-generate/blob/main/TEST.md
Executes the entire test suite using the bun test command. This is the primary command for verifying the project's functionality.
```bash
bun test
```
--------------------------------
### Receipt Document Structure (JSON)
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Example structure for a receipt document, used for confirming payments. It includes required fields like document number, issue date, payment date, and items, along with optional payment and tax details.
```json
{
"documentNumber": "auto",
"issueDate": "2024-11-15",
"paymentDate": "2024-11-14",
"items": [
{
"description": "Website Development",
"quantity": 1,
"unit": "โครงการ",
"unitPrice": 50000
}
],
"paymentMethod": "โอนเงินธนาคาร",
"paymentReference": "REF-20241114-001",
"taxType": "withholding",
"taxRate": 0.03,
"taxLabel": "หัก ณ ที่จ่าย 3%",
"paymentTerms": ["ชำระแล้วเต็มจำนวน"],
"notes": "ขอบคุณที่ชำระเงินตรงเวลาครับ"
}
```
--------------------------------
### Pacioli CLI Commands
Source: https://github.com/tetipong2542/inv-generate/blob/main/agent-skills/pacioli-skills/SKILL.md
Overview of the available commands for the Pacioli CLI tool, including initialization, document generation, help, and version checking.
```APIDOC
## Pacioli CLI Commands
### Description
This section outlines the primary commands available in the Pacioli CLI for managing and generating financial documents.
### Method
CLI Commands
### Endpoint
N/A
### Parameters
#### CLI Commands
- **`init`** (command) - Initializes a new project structure with configuration files and HTML templates.
- **`generate [--customer ]`** (command) - Generates a PDF document. `` can be `invoice`, `quotation`, or `receipt`. `` is the path to the document's JSON data file. `--customer` is an optional flag to specify the customer's JSON profile path.
- **`help`** (command) - Displays the help message for the Pacioli CLI.
- **`version`** (command) - Shows the current version of the Pacioli CLI.
### Request Example
```bash
bunx pacioli init
bunx pacioli generate invoice invoices/oct-service.json --customer customers/acme.json
```
### Response
#### Success Response
- Output will vary based on the command executed. `init` creates files, `generate` outputs a PDF file, `help` displays text, and `version` displays the version string.
#### Response Example
```
# Example for 'generate' command (output is a PDF file, not text)
# Example for 'version' command
1.0.0
```
```
--------------------------------
### Pacioli Usage Overview
Source: https://github.com/tetipong2542/inv-generate/blob/main/README.md
Provides a summary of common Pacioli commands for initializing a project and generating different types of financial documents (invoice, quotation, receipt). Each document generation requires data and customer information.
```bash
pacioli init # Initialize new project
pacioli generate invoice data.json --customer customer.json
pacioli generate quotation data.json --customer customer.json
pacioli generate receipt data.json --customer customer.json
```
--------------------------------
### No Tax Configuration (JSON)
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Configuration for scenarios where no tax is applied. This JSON snippet sets the tax rate to zero and provides a label indicating 'No Tax'.
```json
{
"taxRate": 0,
"taxLabel": "ไม่มีภาษี"
}
```
--------------------------------
### Manually Set Document Number
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Allows specifying a custom document number directly in the data JSON. This bypasses the auto-numbering sequence and does not affect the auto-numbering counter.
```json
{
"documentNumber": "INV-2024-CUSTOM-001",
...
}
```
--------------------------------
### Importing Bun Test Utilities
Source: https://github.com/tetipong2542/inv-generate/blob/main/TEST.md
Demonstrates the correct import statement for Bun test utilities, specifically highlighting the need to import `beforeEach` and `afterEach` from `bun:test` to resolve 'ReferenceError'.
```typescript
import { describe, test, expect, beforeEach, afterEach } from "bun:test";
```
--------------------------------
### Generate Financial Document CLI
Source: https://context7.com/tetipong2542/inv-generate/llms.txt
Generates financial documents (invoice, quotation, receipt) from JSON data files. It requires customer data and can optionally use an alternative freelancer profile and specify an output path.
```bash
bunx pacioli generate invoice data/invoice.json --customer customers/acme-corp.json
bunx pacioli generate quotation data/quote.json --customer customers/demo.json --output custom/quote.pdf
bunx pacioli generate receipt data/receipt.json --customer customers/test.json --profile config/freelancer-alt.json
```
--------------------------------
### Common Item Structure (JSON)
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Defines the common structure for items across all document types (invoice, quotation, receipt). It includes fields for description, quantity, unit, and unit price.
```json
{
"items": [
{
"description": "Service or product description",
"quantity": 1,
"unit": "Unit name (e.g., โครงการ, ชม., หน้า)",
"unitPrice": 10000.00
}
]
}
```
--------------------------------
### Freelancer Profile Configuration JSON
Source: https://context7.com/tetipong2542/inv-generate/llms.txt
Defines the freelancer's business information, including contact details, tax ID, signature path, and bank information, used across all generated financial documents.
```json
{
"name": "John Smith",
"title": "Full-Stack Developer",
"email": "john@example.com",
"phone": "081-234-5678",
"address": "123 Main Street, Bangkok 10110",
"taxId": "1234567890123",
"signature": "config/signature.png",
"bankInfo": {
"bankName": "Bangkok Bank",
"accountName": "John Smith",
"accountNumber": "123-4-56789-0",
"branch": "Silom Branch"
}
}
```
--------------------------------
### Withholding Tax Configuration (JSON)
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Configuration for withholding tax, commonly used by freelancers in Thailand. This JSON snippet defines the tax type, rate, and label for deducting tax from the total amount.
```json
{
"taxType": "withholding",
"taxRate": 0.03,
"taxLabel": "หัก ณ ที่จ่าย 3%"
}
```
--------------------------------
### Generate Receipt
Source: https://github.com/tetipong2542/inv-generate/blob/main/agent-skills/pacioli-skills/SKILL.md
Produce a receipt PDF document. Similar to generating invoices and quotations, this command takes the path to the receipt JSON data file and can optionally link to a customer JSON file using the `--customer` flag.
```bash
bunx pacioli generate receipt receipts/payment-101.json --customer customers/acme.json
```
--------------------------------
### Generate Invoice with Customer Flag
Source: https://github.com/tetipong2542/inv-generate/blob/main/agent-skills/pacioli-skills/SKILL.md
Generate an invoice PDF by specifying the invoice JSON file and the customer JSON file using the `--customer` flag. This method is useful when the customer details are not embedded within the invoice JSON itself.
```bash
bunx pacioli generate invoice invoices/oct-service.json --customer customers/acme.json
```
--------------------------------
### Auto-Numbering System Example
Source: https://github.com/tetipong2542/inv-generate/blob/main/CLAUDE.md
The tool supports an auto-numbering system for documents, formatted as 'PREFIX-YYYYMM-NUMBER'. It handles month rollovers and allows for manual overrides, updating the counter intelligently. The metadata is stored in '.metadata.json'.
```json
{"documentNumber": "auto", ...} // First invoice in Oct 2024 → INV-202410-001
{"documentNumber": "auto", ...} // Second invoice → INV-202410-002
{"documentNumber": "INV-202410-999", ...} // Manual number updates counter to 999
{"documentNumber": "auto", ...} // Next auto → INV-202410-1000
{"documentNumber": "auto", ...} // First invoice in Nov 2024 → INV-202411-001 (counter resets)
```
--------------------------------
### Run Tests in Watch Mode (Bash)
Source: https://github.com/tetipong2542/inv-generate/blob/main/TEST.md
Executes tests and automatically re-runs them when file changes are detected. This is useful for a rapid development feedback loop.
```bash
bun test:watch
```
--------------------------------
### VAT Configuration (JSON)
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Configuration for Value Added Tax (VAT). This JSON snippet defines the tax type, rate, and label for adding tax to the total amount, commonly used in business transactions.
```json
{
"taxType": "vat",
"taxRate": 0.07,
"taxLabel": "VAT 7%"
}
```
--------------------------------
### Specify Customer Path in Data JSON
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Allows embedding the customer file path directly within the data JSON file. This simplifies the generation command when the customer is consistently linked to the document data.
```json
{
"customerPath": "customers/acme-corp.json",
"documentNumber": "auto",
"issueDate": "2024-11-12",
...
}
```
--------------------------------
### Run Specific Test File (Bash)
Source: https://github.com/tetipong2542/inv-generate/blob/main/TEST.md
Executes tests only for a specified file, such as 'tests/utils.test.ts'. This is helpful for isolating and debugging specific test modules.
```bash
bun test tests/utils.test.ts
```
--------------------------------
### Generate PDF Invoice using API
Source: https://context7.com/tetipong2542/inv-generate/llms.txt
This snippet demonstrates how to generate a PDF invoice using the project's API. It sends a POST request with invoice details and receives a response containing the filename and path of the generated PDF.
```bash
# Generate an invoice via API
curl -X POST http://localhost:3001/api/generate \
-H "Content-Type: application/json" \
-d '{
"type": "invoice",
"customerId": "acme-corp",
"documentData": {
"documentNumber": "auto",
"issueDate": "2024-11-12",
"dueDate": "2024-11-30",
"items": [
{
"description": "Web Development",
"quantity": 1,
"unit": "project",
"unitPrice": 50000
}
],
"taxType": "withholding",
"taxRate": 0.03,
"taxLabel": "Withholding Tax 3%"
}
}'
# Response
{
"success": true,
"data": {
"filename": "invoice-INV-202411-001.pdf",
"path": "/output/invoice-INV-202411-001.pdf",
"documentNumber": "INV-202411-001",
"type": "invoice"
},
"message": "PDF created successfully: invoice-INV-202411-001.pdf"
}
```
--------------------------------
### Generate Quotation
Source: https://github.com/tetipong2542/inv-generate/blob/main/agent-skills/pacioli-skills/SKILL.md
Create a quotation PDF document. This command requires the path to the quotation JSON data file and optionally accepts a path to a customer JSON file via the `--customer` flag.
```bash
bunx pacioli generate quotation quotations/web-design.json --customer customers/acme.json
```
--------------------------------
### Freelancer Profile Structure (JSON)
Source: https://github.com/tetipong2542/inv-generate/blob/main/USAGE.md
Defines the structure for a freelancer's profile, including personal information, contact details, tax ID, bank information, and signature path. This JSON file is essential for generating documents.
```json
{
"name": "นายสมชาย ใจดี",
"title": "Full-Stack Developer",
"email": "somchai@example.com",
"phone": "081-234-5678",
"address": "123 ถนนสุขุมวิท กรุงเทพมหานคร 10110",
"taxId": "1809900958692",
"bankInfo": {
"bankName": "ธนาคารกสิกรไทย",
"accountName": "นายสมชาย ใจดี",
"accountNumber": "123-4-56789-0",
"branch": "สาขาสีลม"
},
"signature": "config/signature.png"
}
```