=== KantanPro ===
Contributors: KantanPro
Tags: business, order management, customer management, invoice, report, staff chat, mobile responsive
Requires at least: 5.0
Tested up to: 6.9.1
Requires PHP: 7.4
Stable tag: 1.1.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

スモールビジネス向けの仕事効率化システム。受注・顧客・サービス・協力会社・レポート・スタッフチャットまで一元管理。

== 説明 ==

KantanProは、WordPress上で以下の業務を一元管理できる多機能プラグインです。

**主要機能：**
- **6つの管理タブ**（仕事リスト・伝票処理・顧客・サービス・協力会社・レポート）
- **受注案件の進捗管理**（7段階：受注→進行中→完了→請求→支払い→ボツ→見積中）
- **受注書・請求書の作成・編集・PDF保存**（個別・一括出力対応）
- **顧客・サービス・協力会社のマスター管理**（検索・ソート・ページネーション）
- **スタッフチャット**（自動スクロール・削除連動・AJAX送信・キーボードショートカット）
- **モバイル対応UI**（gap→margin対応、iOS/Android実機対応、タッチ操作最適化）
- **部署管理機能**（顧客ごとの部署・担当者管理）
- **利用規約管理機能**（同意ダイアログ・管理画面・バージョン管理・表示対象の最適化）
- **シンプル更新システム**（WordPress標準の更新システムに最適化）
- **セキュリティ機能**（XSS/CSRF/SQLi/権限管理/ファイル検証/ノンス/prepare文）
- **セッション管理最適化**（REST API・AJAX・内部リクエスト対応）
- **ページネーション機能**（全タブ・ポップアップ対応・一般設定連携）
- **ファイル添付機能**（ドラッグ&ドロップ・複数ファイル・自動クリーンアップ）
- **完了日自動設定機能**（進捗変更時の自動処理）
- **納期警告機能**（期限管理・アラート表示）
- **商品管理機能**（価格・数量・単位管理・データマイグレーション対応）
- **スタッフアバター表示機能**（ログイン中スタッフの可視化）
- **プラグインリファレンス機能**（包括的なヘルプシステム）
- **寄付機能**（Stripe決済・セキュアな決済処理・進捗管理・自動メール送信）
- **自動マイグレーション機能**（データベース更新の安定化）
- **データベース整合性チェック機能**（データ品質向上）
- **消費税対応機能**（軽減税率・税区分対応の強化）
- **パフォーマンス最適化機能**（キャッシュ・クエリ最適化・メモリ効率化）
- **協力会社職能選択の改善**（ページネーション・検索・ソート機能の強化）
- **アイコンのSVG化**（Material SymbolsからSVGアイコンへの完全移行）
- **進捗アイコンのSVG化**（仕事リストタブの進捗フィルターアイコンをSVG化）
- **消費税対応の改善**（税率計算・表示の最適化）
- **受注書のコスト項目更新処理の改善**（リアルタイム保存・値変更検知・エラーハンドリング強化）
- **受注書のコスト項目発注メールの改善**（適格請求書対応・詳細な税額内訳・計算根拠明示）
- **請求書プレビューが閉じない問題を修正**
- **パフォーマンスの向上**（キャッシュシステム最適化・データベースクエリ効率化・メモリ使用量最適化・画像最適化・JavaScript・CSS最適化・セッション管理最適化・Ajax通信最適化）
- **マイグレーション中にエラー解消**（データベース更新処理の安定化・エラーハンドリング強化）
- **利用規約の表示対象を修正**（より適切な対象への変更）
- **URL生成問題１−１の修正**（動的パーマリンク取得による環境非依存のURL生成）
- **モバイル表示の改善**（レスポンシブデザイン強化・タッチ操作最適化・モバイル専用UI改善）
- **更新チェック問題テスト**（更新システムの安定性向上・バグ修正・パフォーマンス最適化）
- **KantanPro License Managerプラグインの連携１−１**（ライセンス管理システムとの統合・ライセンス検証機能・ライセンス情報管理・レート制限機能・セキュアなAPI通信）
- **ダミーデータツール機能**（管理画面でのテストデータ作成・顧客・サービス・協力会社・受注データの一括生成）
- **レポート機能**（売上レポート・顧客レポート・サービスレポート・協力会社レポート・期間別分析・グラフ表示機能・データエクスポート機能・ライセンス認証連携）

== インストール ==

1. プラグインを `/wp-content/plugins/` にアップロード、または管理画面からインストール
2. プラグインを有効化（自動マイグレーションが実行されます）
3. 固定ページに `[ktpwp_all_tab]` を挿入
4. 管理画面「KantanPro」から基本設定を行ってください

== 基本的な使い方 ==

1. **固定ページに `[ktpwp_all_tab]` を挿入**すると、6つのタブが表示されます
2. **各タブで顧客・サービス・協力会社・受注書・レポート等を管理**
3. **伝票編集時は「サービス選択」ポップアップから商品を追加**
4. **受注書・請求書はPDFで出力可能**（個別・一括対応）
5. **モバイルでも快適に操作可能**（レスポンシブデザイン）
6. **スタッフチャットでリアルタイムコミュニケーション**（Ctrl+Enter送信対応）
7. **ヘルプボタンで使用方法を確認**
8. **顧客管理で部署・担当者を管理**
9. **利用規約に同意してから利用開始**（表示対象の最適化）
10. **ファイル添付でメール送信も可能**
11. **寄付機能でプラグイン開発をサポート**

== 管理タブの詳細 ==

**1. 仕事リストタブ**
- 受注案件の一覧表示・検索・フィルタリング機能
- 進捗状況による絞り込み
- 顧客名・案件名での検索
- 納期・金額でのソート
- ページネーション機能

**2. 伝票処理タブ**
- 受注書・請求書の作成・編集
- PDF出力機能（個別・一括対応）
- サービス選択ポップアップ
- スタッフチャット機能
- ファイル添付機能

**3. 顧客タブ**
- 顧客情報の登録・編集・削除
- 部署・担当者管理
- 顧客別の受注履歴表示
- 検索・ソート・ページネーション

**4. サービスタブ**
- サービス・商品の登録・編集・削除
- 価格・数量・単位管理
- カテゴリー別管理
- 検索・ソート・ページネーション

**5. 協力会社タブ**
- 協力会社情報の登録・編集・削除
- 職能・スキル管理
- 協力会社別の案件履歴
- 検索・ソート・ページネーション

**6. レポートタブ**
- 月別売上レポート
- 進捗状況の統計
- グラフ表示機能
- データエクスポート機能

== スタッフチャット機能 ==
- リアルタイムメッセージ送信（AJAX対応）
- 自動スクロール機能
- キーボードショートカット（Ctrl+Enter）
- メッセージ削除連動機能
- ログイン中スタッフのアバター表示

== 部署管理機能 ==
- 顧客ごとの部署・担当者管理
- 部署別のメールアドレス設定
- 請求書への部署情報反映
- 部署の追加・編集・削除機能

== 利用規約管理機能 ==
- 利用規約の同意ダイアログ表示
- 管理画面での利用規約編集
- 利用規約バージョン管理
- 同意状態の追跡

== シンプル更新システム ==
- WordPress標準の更新システムに完全対応
- 軽量で安定性を重視した設計
- 自動マイグレーション機能搭載

== ページネーション機能 ==
- 全タブでの統一されたページネーション
- サービス選択ポップアップ対応
- 一般設定による表示件数制御
- レスポンシブデザイン対応

== ファイル添付機能 ==
- ドラッグ&ドロップによるファイル添付
- 複数ファイル同時添付（最大50MB）
- 対応形式：PDF、画像、Office文書、圧縮ファイル
- 自動クリーンアップ機能
- リアルタイムプレビュー

== 完了日自動設定機能 ==
- 進捗ステータス変更時の自動処理
- 完了時の自動日付設定
- 受注以前への変更時の自動クリア
- 仕事リスト・受注書詳細両対応

== 納期警告機能 ==
- 期限間近の案件への警告マーク表示
- リアルタイム更新対応
- ツールチップでの残り日数表示

== 商品管理機能 ==
- 商品名・単価・数量・単位の管理
- DECIMAL型による精密な価格計算
- デフォルト値設定（数量：1、単位：式）
- インデックス最適化によるパフォーマンス向上
- データマイグレーション機能（職能→商品管理への移行）

== スタッフアバター表示機能 ==
- ログイン中スタッフのアバター一覧表示
- 現在のユーザーを強調表示
- レスポンシブデザイン対応
- ツールチップでユーザー名表示
- セッション管理との連携

== プラグインリファレンス機能 ==
- 包括的なヘルプシステム
- 機能別詳細ガイド
- トラブルシューティング情報
- キャッシュ機能付きの高速表示
- モーダルベースの使いやすいUI

== 寄付機能 ==
- Stripe決済による安全な寄付システム
- 複数の寄付金額オプション
- 寄付進捗のリアルタイム表示
- 寄付完了後の自動メール送信
- 管理画面での寄付履歴確認
- フロントエンド通知システム

== 自動マイグレーション機能 ==
- データベース更新の自動化
- 安全なデータ移行
- バージョン管理による段階的更新
- エラーハンドリングとロールバック機能

== データベース整合性チェック機能 ==
- データ品質の自動チェック
- 不整合データの検出と修復
- 定期的な整合性確認
- データベースパフォーマンスの最適化

== 消費税対応機能 ==
- 税制モードは「消費税あり / 消費税なし」の2択
- 消費税なしを選ぶと税率/税額列や内訳表示を自動で非表示
- 消費税ありの場合：一律税率を設定すると全明細に適用、未入力なら複数税率運用
- 軽減税率（8%・10%）対応
- 内税・外税の管理
- 税区分ラベルの統一
- 消費税計算ロジックの最適化（切り上げ）
- 請求書・受注書・メール本文での税表示の一貫制御

== パフォーマンス最適化機能 ==
- **キャッシュシステム**（トランジェント・オブジェクトキャッシュ）
- **データベースクエリ最適化**（インデックス・JOIN最適化）
- **メモリ使用量最適化**（効率的なデータ構造）
- **画像最適化**（WebP変換・圧縮）
- **JavaScript最適化**（非同期読み込み・バンドル化）
- **CSS最適化**（不要なスタイル削除・圧縮）
- **セッション管理最適化**（自動クローズ・メモリ効率化）
- **Ajax通信最適化**（バッチ処理・レスポンス圧縮）

== セキュリティ機能 ==
- **SQLインジェクション防止**（prepare文・バインド変数）
- **XSS・CSRF対策**（サニタイズ・エスケープ・ノンス）
- **ファイルアップロード検証**（MIME型・サイズ制限）
- **権限管理・安全なDBアクセス**（ロールベースアクセス制御）
- **ノンス・トークンによるフォーム保護**（CSRF攻撃防止）
- **REST API制限**（ログインユーザーのみアクセス可能）
- **セッション管理最適化**（内部リクエスト・API呼び出し時の自動クローズ）
- **gap→margin対応によるUI崩れ防止**（iOS/Android実機対応）

== システム要件 ==
 
== 開発者向け: ライセンス認証（KLM連携）実装・調査ガイド ==

- **対象**: 任意のプラグインから KLM（KantanPro License Manager）へのライセンス認証
- **参考**: [KantanPro公式サイト](https://www.kantanpro.com/)

--- 基本仕様 ---
- **エンドポイント（維持）**: POST `/wp-json/ktp-license/v1/verify`
- **Content-Type**: `application/x-www-form-urlencoded`
- **パラメータ**:
  - `license_key`（必須）
  - `site_url`（任意だが推奨。紐付け比較あり）
  - `plugin_version`（任意）
- **レスポンス（例）**:
  - 成功: `{ success:true, valid:true, message, data }`
  - 失敗: `{ success:false, valid:false, message, error_code }`

--- 実装サンプル（cURL） ---
`--data-urlencode` でURLエンコード必須。記号やパイプ(`|`)が含まれても安全に送信されます。
```bash
curl -sS -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'license_key=PREFIX-123456-ABCDEFGH-1234' \
  --data-urlencode 'site_url=https://example.com' \
  --data-urlencode 'plugin_version=1.2.3' \
  https://www.kantanpro.com/wp-json/ktp-license/v1/verify
```

--- 失敗しやすいポイント（必読） ---
1) **エンコード形式ミス**
   - JSON送信や未エンコード送信でキーが破損（例: `+`→空白、`|`欠落）
2) **文字種の揺れ**
   - 大文字/小文字、全角/半角、ゼロ幅スペース、Unicodeハイフン（‐, –, —）
   - 原則「英大文字・数字・ハイフン」基準。大文字化・不可視文字除去・ダッシュ統一を推奨
3) **site_url 不一致**
   - 比較は正規化（http/https、www有無、末尾スラッシュ差は無視）。別サイトなら `site_mismatch`
4) **事前バリデーションが厳しすぎる**
   - クライアント側は「非空」または緩和。KLM側に最終判定を委譲
5) **レート制限/タイムアウト**
   - レート制限: 1時間に100回。指数バックオフ/再試行を実装
6) **中継/セキュリティ層**
   - WAF/CDN/プロキシが `|`, `<`, `>` をブロック/改変。ログで到達ペイロードを確認

--- 期待挙動（受け入れ基準） ---
- **生成と検証の一致（100%）**
- **記号を含む既存キー**はKLM側フォールバックで受理可能（`invalid_format`は原則返さない）
- **site_url** は正規化比較で誤検知最小化
- 失敗時は必ず `message` と `error_code` を返却

--- 切り分けのために添えてほしい情報（報告テンプレ） ---
- **license_key**: `XXXX-XXXXXX-XXXX...`（先頭以外は一部マスク可）
- **site_url**: 実際に送った値
- **plugin_version**: 例 `2.3.37`
- **実行時刻**（JST ±10分）
- **送信方式**: `application/x-www-form-urlencoded`（YES/NO）
- **エンコード方法**: `--data-urlencode` 相当（YES/NO）
- **レスポンス原文**（HTTPステータス/JSON）
- **ネットワーク**: CDN/WAF/プロキシの有無

--- デバッグ用（任意） ---
到達と内部判定を可視化します。
```bash
curl -sS -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'license_key=PREFIX-123456-ABCDEFGH-1234' \
  --data-urlencode 'site_url=https://example.com' \
  https://www.kantanpro.com/wp-json/ktp-license/v1/debug
```

--- 実装チェックリスト ---
- [ ] フォームエンコード（`--data-urlencode`）で送信している
- [ ] 送信前にトリム/大文字化/不可視文字除去を実施
- [ ] 事前バリデーションは「非空のみ」または緩和（KLMへ委譲）
- [ ] レスポンスの `success/valid/error_code` を正しく判定
- [ ] レート制限時のバックオフ/再試行を実装
- [ ] WAF/CDNの例外設定（該当リクエストパス/メソッド/パラメータ）

--- 備考 ---
- `site_url` は KLM側で正規化比較（http/https、www、末尾スラッシュ差は一致扱い）
- 既存キー（記号含む）は KLM側フォールバックで最大限受理（`invalid_format` は原則出ません）

* WordPress 5.0 以上（推奨：最新版）
* PHP 7.4 以上（推奨：PHP 8.0以上）
* MySQL 5.6 以上 または MariaDB 10.0 以上
* 推奨メモリ: 256MB 以上
* 推奨PHP拡張: GD（画像処理用）

== 変更履歴 ==

= 1.1.1 - 2025年09月24日 =
* AJAXハンドラーの重複登録防止機能を追加
  - 重複登録によるエラーを防止し、システムの安定性を向上
  - ログ出力を改善し、デバッグモード時のAjaxリクエスト監視を強化
  - ログレベルを追加して本番環境でのログ出力を制御
  - パフォーマンスの向上とメモリ使用量の最適化

= 1.1.0 - 2025年09月20日 =
* 管理メニューのアイコンを更新
  - データツールのアイコンをデータベースエクスポートから金色の星に変更
  - 視覚的な強調を追加し、ユーザーの注目を集めるように改善
* バックアップ機能のUI改善
  - 設定ページのバックアップ機能に関するメッセージとボタンのテキストを更新
  - 視覚的な強調を追加し、ユーザーに対する呼びかけを強化
  - ライセンス設定の案内を明確化
* システム名と説明の更新
  - 設定ページでのシステム名を「KantanPro」に変更
  - システムの説明を「個人事業主・フリーランス・小規模ビジネスのための売管理システムです。」に変更
* バックアップ機能のライセンスチェックを追加
  - 設定ページにライセンスの有効性を確認する機能を実装
  - 無効な場合はライセンス購入を促すメッセージを表示
* データリストア機能の実装
  - インポート機能をリストアに変更し、関連する処理とUIを更新
  - 既存データの削除処理を追加
  - リストア成功/失敗時の通知を実装
* バックアップ機能の名称変更
  - データ処理ページをバックアップページに改名
  - 関連するメニュータイトルを更新

= 1.0.31 - 2025年09月09日 =
* AJAX設定の統一化の改善
  - 不要なajaxConfigの取得を削除
  - コードの簡素化を図る
  - パフォーマンスの向上

= 1.0.30 - 2025年09月09日 =
* AJAX設定の統一化
  - AJAX URLとnonceの取得方法を一元化
  - デバッグログを改善
  - コードの可読性と保守性を向上
* ライセンス認証の実装ガイドをreadme.txtに追加
  - ライセンスキーの形式チェックを軽減
  - JavaScriptでの許容文字チェックを実装
  - エラーメッセージを改善
* プラグインバージョンの動的定義を実装
  - フッターの利用規約リンク表示をクラスで特定するように改善
  - 既存のリンクチェック機能を強化

= 1.0.29 - 2025年09月07日 =
* ライセンス管理クラスの改善
  - ライセンスキーの正規化処理を追加
  - APIリクエストのエラーログを強化
  - AJAXハンドラでのnonce検証を厳格化
  - 失敗時のフォールバック処理を実装
* キャッシュ管理クラスと関連JavaScriptファイルを削除し、プラグインの軽量化を図る
* レポート機能の修正と改善
  - レポート表示の安定性向上
  - データ処理の最適化

= 1.0.28 - 2025年01月27日 =
* ヘルプのリンク先を修正
* ファイル・クラス名の統一を実施
* 受注書プレビュー印刷を閉じる際のバグ修正

= 1.0.26 - 2025年08月14日 =
* 消費税制モード修正

= 1.0.25 - 2025年08月13日 =
* サーバー移転対応
  - サーバー移転時のためのデータ処理機能を追加（エクスポート/インポート補助、URL/パス置換、エンコード正規化、ドライラン、ログ出力）

= 1.0.23 - 2025年08月11日 =
* 消費税モード対応
  - 税制モード「消費税あり / 消費税なし」の切替を追加
  - 税率/税額列や内訳表示の自動表示制御
  - 請求書・受注書・メール本文の税表示を一貫制御

= 1.0.22 - 2025年08月09日 =
* ダミーデータツールの改善

= 1.0.21 - 2025年01月31日 =
* ダミーデータツールの改善
  - テストデータ作成機能の最適化
  - データ生成処理の安定化
  - ユーザビリティの向上

= 1.0.20 - 2025年01月31日 =
* 自動マイグレーション機能の改善
  - データベース更新処理の安定化
  - エラーハンドリングの強化
  - マイグレーション安全性の向上
  - バージョン管理の最適化

= 1.0.19 - 2025年01月31日 =
* 更新チェック問題修正
* リポジトリ名を修正（KantanPro/KantanPro-a- → KantanPro/KantanPro）

= 1.0.18 - 2025年08月05日 =
* 更新チェック問題修正
* リポジトリ名を修正（KantanPro/KantanPro-a- → KantanPro/KantanPro）
* ダミーデータ作成スクリプトの配布対応

= 1.0.16 - 2025年08月06日 =
* 協力会社のエラーを修正

= 1.0.15 - 2025年08月05日 =
* ライセンス無効時のレポートタブ修正

= 1.0.14 - 2025年08月04日 =
* 自動マイグレーション機能の改善

= 1.0.13 - 2025年8月4日 =
* 自動マイグレーション機能の改善

= 1.0.12 - 2025年8月4日 =
* ライセンスステータスの改善
* ライセンス無効中のレポート表示の改善

= 1.0.10(a) - 2025年8月2日 =
* ３桁カンマ問題の修正
* サービス選択からの入力改善

= 1.0.9(a) - 2025年8月2日 =
* ダミーデータツールの改善

= 1.0.7(a) - 2025年8月1日 =
* ダミーデータツールの改善
* 詳細タイトルの表示改善

= 1.0.6(a) - 2025年8月1日 =
* ダミーデータツールの改善
* ライセンスキー設定の表示改善

= 1.0.4(a) - 2025年7月31日 =
* レポート機能の追加・改善
  - 売上レポート機能の実装
  - 顧客レポート機能の実装
  - サービスレポート機能の実装
  - 協力会社レポート機能の実装
  - 期間別分析機能の実装
  - グラフ表示機能の実装（Chart.js対応）
  - データエクスポート機能の実装
  - ライセンス認証連携機能の実装
  - レポートセレクター機能の実装
  - リアルタイムデータ更新機能の実装

= 1.0.2(a) - 2025年7月30日 =
* ダミーデーターツール改善

= 1.0.1(a) - 2025年7月30日 =
* ダミーデーターツール実装
* 基本的レポート機能実装

= 1.0.0(a) - 2025年7月29日 =
* ktpa開発開始

== よくある質問 ==

**Q: プラグインの動作が重い場合は？**
A: パフォーマンス最適化機能により、キャッシュシステムやデータベースクエリの最適化が自動的に行われます。それでも重い場合は、サーバーのメモリ設定を確認してください。

**Q: モバイルで表示が崩れる場合は？**
A: gap→margin対応により、iOS/Android実機での表示崩れを防止しています。最新のブラウザを使用してください。

**Q: データベースエラーが発生した場合は？**
A: 自動マイグレーション機能により、データベースの更新が自動的に行われます。プラグインを再有効化してください。

**Q: セキュリティは大丈夫ですか？**
A: XSS・CSRF・SQLインジェクション対策、ファイルアップロード検証、権限管理など、包括的なセキュリティ機能を実装しています。

== スクリーンショット ==

1. 管理タブ画面
2. 受注書編集画面
3. スタッフチャット画面
4. モバイル対応画面
5. レポート画面



== アップグレード通知 ==

プラグインの更新は、WordPress標準の更新システムで自動的に通知されます。