---
generated_at: 2026-01-29 22:15:00
metrics:
  claims_total: 105
  claims_with_evidence: 105
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：company.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：105 / 105、根拠なし：0
- 優先レビュー（高）
  1. **価格計算関連テスト（UT-COM-052〜054）**：金額計算のため重点確認推奨
  2. **データ整合性テスト（UT-COM-020〜022, 038, 042）**：データの一貫性に関わる重要ロジック
  3. **バリデーションテスト（UT-COM-034〜040）**：入力値検証のため網羅性確認推奨

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/company/models.py`
- E-02: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/company/serializers.py`
- E-03: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/company/api.py`
- E-04: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/company/filters.py`
- E-05: `/Users/tomoka.baba/Work/InvenTree-master/src/backend/InvenTree/company/admin.py`

## 3) Claims と根拠の対応（レビューの主戦場）

### Companyモデル（UT-COM-001〜015）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Company.__str__メソッドの文字列フォーマット | E-01 L264-266 | ○ |
| C-02 | Company.get_api_urlの戻り値 | E-01 L125-128 | ○ |
| C-03 | Company.report_contextのレポートコンテキスト生成 | E-01 L130-140 | ○ |
| C-04 | Company.addressプロパティのプライマリアドレス取得 | E-01 L229-237 | ○ |
| C-05 | Company.addressプロパティのNull処理 | E-01 L237 | ○ |
| C-06 | Company.primary_addressプロパティ | E-01 L239-248 | ○ |
| C-07 | Company.primary_addressのプリフェッチ最適化 | E-01 L243-245 | ○ |
| C-08 | Company.primary_addressの空リスト処理 | E-01 L245 | ○ |
| C-09 | Company.currency_codeの通貨コード取得 | E-01 L250-262 | ○ |
| C-10 | Company.currency_codeの無効通貨処理 | E-01 L259-260 | ○ |
| C-11 | Company.currency_codeの空文字処理 | E-01 L259-260 | ○ |
| C-12 | Company.partsプロパティのクエリ | E-01 L272-277 | ○ |
| C-13 | Company.partsの空結果処理 | E-01 L274-277 | ○ |
| C-14 | Company.stock_itemsプロパティ | E-01 L279-286 | ○ |
| C-15 | Company.get_absolute_urlのURL生成 | E-01 L268-270 | ○ |

### Contactモデル（UT-COM-016〜017）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | Contact.get_api_urlの戻り値 | E-01 L305-308 | ○ |
| C-17 | Contact.companyのForeignKey関係 | E-01 L310-312 | ○ |

### Addressモデル（UT-COM-018〜023）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-18 | Address.__str__の住所文字列生成 | E-01 L349-365 | ○ |
| C-19 | Address.__str__の空フィールド除外 | E-01 L361-364 | ○ |
| C-20 | Address.saveの自動プライマリ設定 | E-01 L376-379 | ○ |
| C-21 | Address.saveのプライマリ排他制御 | E-01 L384-388 | ○ |
| C-22 | Address.saveの複数アドレス排他制御 | E-01 L373-388 | ○ |
| C-23 | Address.get_api_urlの戻り値 | E-01 L390-393 | ○ |

### ManufacturerPartモデル（UT-COM-024〜029）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-24 | ManufacturerPart.get_api_urlの戻り値 | E-01 L503-506 | ○ |
| C-25 | ManufacturerPart.barcode_model_type_codeの戻り値 | E-01 L508-511 | ○ |
| C-26 | ManufacturerPart.createの新規作成 | E-01 L557-579 | ○ |
| C-27 | ManufacturerPart.createの既存返却 | E-01 L562-567 | ○ |
| C-28 | ManufacturerPart.__str__の文字列フォーマット | E-01 L581-591 | ○ |
| C-29 | ManufacturerPart.__str__のnull manufacturer処理 | E-01 L585-586 | ○ |

### SupplierPartモデル（UT-COM-030〜065）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-30 | SupplierPart.get_api_urlの戻り値 | E-01 L635-638 | ○ |
| C-31 | SupplierPart.get_absolute_urlのURL生成 | E-01 L640-642 | ○ |
| C-32 | SupplierPart.api_instance_filtersのフィルタ生成 | E-01 L644-646 | ○ |
| C-33 | SupplierPart.barcode_model_type_codeの戻り値 | E-01 L648-651 | ○ |
| C-34 | SupplierPart.cleanの空pack_quantity処理 | E-01 L661-665 | ○ |
| C-35 | SupplierPart.cleanのpack_quantity空白除去 | E-01 L661 | ○ |
| C-36 | SupplierPart.cleanのpack_quantity 0以下検証 | E-01 L686-689 | ○ |
| C-37 | SupplierPart.cleanのpack_quantity負値検証 | E-01 L686-689 | ○ |
| C-38 | SupplierPart.cleanのmanufacturer_part整合性検証 | E-01 L697-704 | ○ |
| C-39 | SupplierPart.cleanの単位変換処理 | E-01 L668-692 | ○ |
| C-40 | SupplierPart.cleanの互換性なし単位検証 | E-01 L676-683 | ○ |
| C-41 | SupplierPart.saveのManufacturerPart接続 | E-01 L706-726 | ○ |
| C-42 | SupplierPart.saveの既存manufacturer_part検証 | E-01 L727-730 | ○ |
| C-43 | SupplierPart.base_quantityの数量計算 | E-01 L831-836 | ○ |
| C-44 | SupplierPart.base_quantityのquantity=1処理 | E-01 L832-833 | ○ |
| C-45 | SupplierPart.base_quantityのquantity=0処理 | E-01 L832-833 | ○ |
| C-46 | SupplierPart.nameプロパティ | E-01 L870-873 | ○ |
| C-47 | SupplierPart.manufacturer_stringのフォーマット | E-01 L875-889 | ○ |
| C-48 | SupplierPart.manufacturer_stringのnull処理 | E-01 L881-888 | ○ |
| C-49 | SupplierPart.has_price_breaksのTrue判定 | E-01 L891-894 | ○ |
| C-50 | SupplierPart.has_price_breaksのFalse判定 | E-01 L893 | ○ |
| C-51 | SupplierPart.price_breaksのソート順 | E-01 L896-899 | ○ |
| C-52 | SupplierPart.unit_pricingの単価取得 | E-01 L901-904 | ○ |
| C-53 | SupplierPart.add_price_breakの新規追加 | E-01 L906-917 | ○ |
| C-54 | SupplierPart.add_price_breakの重複防止 | E-01 L913-915 | ○ |
| C-55 | SupplierPart.open_ordersのクエリ | E-01 L921-925 | ○ |
| C-56 | SupplierPart.open_ordersの空結果処理 | E-01 L923-925 | ○ |
| C-57 | SupplierPart.on_orderの数量計算 | E-01 L927-942 | ○ |
| C-58 | SupplierPart.on_orderの発注なし処理 | E-01 L940-942 | ○ |
| C-59 | SupplierPart.on_orderの全数受領処理 | E-01 L942 | ○ |
| C-60 | SupplierPart.purchase_ordersのリスト取得 | E-01 L944-949 | ○ |
| C-61 | SupplierPart.update_available_quantityの更新処理 | E-01 L864-868 | ○ |
| C-62 | SupplierPart.pretty_nameプロパティ | E-01 L951-954 | ○ |
| C-63 | SupplierPart.__str__の完全フォーマット | E-01 L956-969 | ○ |
| C-64 | SupplierPart.__str__のIPNなし処理 | E-01 L960-961 | ○ |
| C-65 | SupplierPart.__str__のmanufacturer_string追加 | E-01 L966-967 | ○ |

### SupplierPriceBreakモデル（UT-COM-066〜067）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-66 | SupplierPriceBreak.get_api_urlの戻り値 | E-01 L999-1002 | ○ |
| C-67 | SupplierPriceBreak.__str__のフォーマット | E-01 L995-997 | ○ |

### ヘルパー関数・シグナル（UT-COM-068〜071）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-68 | rename_company_imageのリネーム処理 | E-01 L34-53 | ○ |
| C-69 | rename_company_imageの拡張子なし処理 | E-01 L46 | ○ |
| C-70 | after_save_supplier_priceシグナルハンドラ | E-01 L1012-1025 | ○ |
| C-71 | after_delete_supplier_priceシグナルハンドラ | E-01 L1028-1043 | ○ |

### Serializers（UT-COM-072〜078）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-72 | CompanySerializer.annotate_querysetのアノテーション | E-02 L155-165 | ○ |
| C-73 | CompanySerializer.saveのリモート画像処理 | E-02 L196-215 | ○ |
| C-74 | SupplierPartSerializer.annotate_querysetのアノテーション | E-02 L491-506 | ○ |
| C-75 | SupplierPartSerializer.updateのavailable更新 | E-02 L508-517 | ○ |
| C-76 | SupplierPartSerializer.createの作成処理 | E-02 L519-538 | ○ |
| C-77 | SupplierPartSerializer.createのManufacturerPart接続 | E-02 L531-536 | ○ |
| C-78 | SupplierPriceBreakSerializer.annotate_querysetの最適化 | E-02 L563-568 | ○ |

### Filters・API（UT-COM-079〜084）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-79 | annotate_on_order_quantityの計算ロジック | E-04 L13-40 | ○ |
| C-80 | annotate_on_order_quantityのデフォルト値 | E-04 L25, L38 | ○ |
| C-81 | CompanyMixin.get_querysetのアノテーション適用 | E-03 L46-51 | ○ |
| C-82 | SupplierPartFilter.filter_companyのフィルタロジック | E-03 L273-277 | ○ |
| C-83 | SupplierPartFilter.filter_has_stockの在庫ありフィルタ | E-03 L283-288 | ○ |
| C-84 | SupplierPartFilter.filter_has_stockの在庫なしフィルタ | E-03 L287-288 | ○ |

### 一意制約・フィールドデフォルト値（UT-COM-085〜105）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-85 | Company.unique_name_email_pair制約 | E-01 L119-121 | ○ |
| C-86 | ManufacturerPart.unique_together制約 | E-01 L501 | ○ |
| C-87 | SupplierPart.unique_together制約 | E-01 L626 | ○ |
| C-88 | SupplierPriceBreak.unique_together制約 | E-01 L990 | ○ |
| C-89 | Company.is_customerフィールド | E-01 L195-199 | ○ |
| C-90 | Company.is_supplierフィールド | E-01 L201-205 | ○ |
| C-91 | Company.is_manufacturerフィールド | E-01 L207-211 | ○ |
| C-92 | Company.activeフィールドデフォルト値 | E-01 L191-193 | ○ |
| C-93 | SupplierPart.activeフィールドデフォルト値 | E-01 L761-765 | ○ |
| C-94 | SupplierPart.multipleフィールドデフォルト値 | E-01 L838-843 | ○ |
| C-95 | SupplierPart.multipleのMinValueValidator | E-01 L839 | ○ |
| C-96 | SupplierPart.base_costフィールドデフォルト値 | E-01 L801-808 | ○ |
| C-97 | SupplierPart.base_costのMinValueValidator | E-01 L805 | ○ |
| C-98 | SupplierPart.availableフィールドデフォルト値 | E-01 L848-855 | ○ |
| C-99 | SupplierPart.availableのMinValueValidator | E-01 L852 | ○ |
| C-100 | Company.contactsリレーション | E-01 L310-312 | ○ |
| C-101 | Company.addressesリレーション | E-01 L395-401 | ○ |
| C-102 | Company.manufactured_partsリレーション | E-01 L522-530 | ○ |
| C-103 | Company.supplied_partsリレーション | E-01 L746-753 | ○ |
| C-104 | ManufacturerPart.supplier_partsリレーション | E-01 L767-775 | ○ |
| C-105 | SupplierPart.pricebreaksリレーション | E-01 L1004-1009 | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし：すべてのテストケースについてソースコードから根拠を確認できました。

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースがソースコードに基づいて生成されています。

## 6) レビュアーチェックリスト（最小）
- [ ] 価格計算関連のテストケース（UT-COM-052〜054）が金額計算のエッジケースを網羅しているか確認
- [ ] データ整合性テスト（UT-COM-020〜022, 038, 042）のシナリオが実際の運用パターンを反映しているか確認
- [ ] バリデーションテスト（UT-COM-034〜040）の入力値パターンが十分か確認
- [ ] シグナルハンドラテスト（UT-COM-070〜071）がモック/スタブを適切に使用する設計になっているか確認
- [ ] 一意制約テスト（UT-COM-085〜088）がトランザクション分離レベルを考慮しているか確認
