"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"overview-all",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"companies-all",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"monthly-all",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"collection-status-all",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"companies-export-all",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"actual":{
"case":"QA106-COUNT-companies-export-all",
"result":"Pass",
"actualXLSXCells":[
[
"客户名称",
"收入",
"成本",
"毛利率"
],
[
"QA106 COUNT three_duplicate",
2500,
700,
40
],
[
"QA106 COUNT pair",
2000,
600,
40
],
[
"QA106 COUNT single",
1000,
200,
100
],
[
"QA106 COUNT zero_excluded",
600,
120,
80
],
[
"QA106 COUNT cross_month",
500,
100,
0
]
],
"baselineCellsIdentical":true,
"note":"companies export has no excluded-count column"
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"collection-status-export-all",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"overview-a",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"companies-a",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"monthly-a",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"collection-status-a",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"companies-export-a",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"actual":{
"case":"QA106-COUNT-companies-export-a",
"result":"Pass",
"actualXLSXCells":[
[
"客户名称",
"收入",
"成本",
"毛利率"
],
[
"QA106 COUNT pair",
1000,
300,
40
],
[
"QA106 COUNT single",
1000,
200,
100
],
[
"QA106 COUNT three_duplicate",
625,
175,
40
],
[
"QA106 COUNT cross_month",
250,
50,
0
]
],
"baselineCellsIdentical":true,
"note":"companies export has no excluded-count column"
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"collection-status-export-a",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"actual":{
"case":"QA106-COUNT-collection-status-export-a",
"result":"Pass",
"actualXLSXCells":[
[
"客户名称",
"未出账",
"未出账占比",
"已出账未开票",
"已出账未开票占比",
"已出账已开票未回款",
"已出账已开票未回款占比",
"已回款",
"已回款占比",
"坏账",
"坏账占比",
"总计"
],
[
"QA106 COUNT pair",
1000,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1000
],
[
"QA106 COUNT single",
1000,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1000
],
[
"QA106 COUNT three_duplicate",
625,
1,
0,
0,
0,
0,
0,
0,
0,
0,
625
],
[
"QA106 COUNT cross_month",
250,
1,
0,
0,
0,
0,
0,
0,
0,
0,
250
]
],
"baselineCellsIdentical":true,
"note":"companies export has no excluded-count column"
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"overview-b",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"companies-b",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"monthly-b",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"collection-status-b",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"companies-export-b",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"actual":{
"case":"QA106-COUNT-companies-export-b",
"result":"Pass",
"actualXLSXCells":[
[
"客户名称",
"收入",
"成本",
"毛利率"
],
[
"QA106 COUNT three_duplicate",
1250,
350,
40
],
[
"QA106 COUNT pair",
1000,
300,
40
],
[
"QA106 COUNT zero_excluded",
300,
60,
80
],
[
"QA106 COUNT cross_month",
250,
50,
0
]
],
"baselineCellsIdentical":true,
"note":"companies export has no excluded-count column"
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"collection-status-export-b",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"actual":{
"case":"QA106-COUNT-collection-status-export-b",
"result":"Pass",
"actualXLSXCells":[
[
"客户名称",
"未出账",
"未出账占比",
"已出账未开票",
"已出账未开票占比",
"已出账已开票未回款",
"已出账已开票未回款占比",
"已回款",
"已回款占比",
"坏账",
"坏账占比",
"总计"
],
[
"QA106 COUNT three_duplicate",
1250,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1250
],
[
"QA106 COUNT pair",
1000,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1000
],
[
"QA106 COUNT zero_excluded",
300,
1,
0,
0,
0,
0,
0,
0,
0,
0,
300
],
[
"QA106 COUNT cross_month",
250,
1,
0,
0,
0,
0,
0,
0,
0,
0,
250
]
],
"baselineCellsIdentical":true,
"note":"companies export has no excluded-count column"
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"overview-c",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"companies-c",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"monthly-c",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"collection-status-c",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"companies-export-c",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"actual":{
"case":"QA106-COUNT-companies-export-c",
"result":"Pass",
"actualXLSXCells":[
[
"客户名称",
"收入",
"成本",
"毛利率"
],
[
"QA106 COUNT three_duplicate",
625,
175,
40
],
[
"QA106 COUNT zero_excluded",
300,
60,
80
]
],
"baselineCellsIdentical":true,
"note":"companies export has no excluded-count column"
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"collection-status-export-c",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"actual":{
"case":"QA106-COUNT-collection-status-export-c",
"result":"Pass",
"actualXLSXCells":[
[
"客户名称",
"未出账",
"未出账占比",
"已出账未开票",
"已出账未开票占比",
"已出账已开票未回款",
"已出账已开票未回款占比",
"已回款",
"已回款占比",
"坏账",
"坏账占比",
"总计"
],
[
"QA106 COUNT three_duplicate",
625,
1,
0,
0,
0,
0,
0,
0,
0,
0,
625
],
[
"QA106 COUNT zero_excluded",
300,
1,
0,
0,
0,
0,
0,
0,
0,
0,
300
]
],
"baselineCellsIdentical":true,
"note":"companies export has no excluded-count column"
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"overview-absent",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"companies-absent",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"monthly-absent",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"collection-status-absent",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"companies-export-absent",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"actual":{
"case":"QA106-COUNT-companies-export-absent",
"result":"Pass",
"actualXLSXCells":[
[
"客户名称",
"收入",
"成本",
"毛利率"
]
],
"baselineCellsIdentical":true,
"note":"companies export has no excluded-count column"
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"collection-status-export-absent",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"company-filter-pair",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"company-filter-three_duplicate",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"company-filter-cross_month",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"companies-allflag-False",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"monthly-allflag-False",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"companies-allflag-True",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"layer":"local disposable SQLite / actual URL-view via APIClient; not network HTTP",
"precondition":"synthetic ORM dataset only; force-authenticated disposable admin; no real account login",
"operation":"monthly-allflag-True",
"expected":"unique excluded Task IDs per eligible bucket; existing raw allocation/money/rate/filter contract unchanged; workbook cells equal baseline where export has no count column",
"database":"SQLite memory only, not persistent/PG; no migrations applied",
"auth":"APIClient.force_authenticate ephemeral admin; not password login, not actual sales actor",
"network":"blocked",
"fixtureWrites":"only local disposable ORM fixture setup/two flag phases/restoration; no existing business DB or account touches",
"noBrowserOrDeployment":true,
"firstAttempt":"support oracle incorrectly assumed duplicate salesman IDs are normalized; preserved execution.log, first raw2responses and runner-correction.md. Corrected to legacy allocation weights; not product Fail or second product-repair round."