P3: the IIF in plain ASCII with every change listed, and the CPA package as of one day (defects 7, 21)
The CPA package's general-journal.iif now holds every posted entry through as_of (closing entries left out, D-36), written as plain ASCII with CR LF, DOCNUM the entry id, QuickBooks Desktop's field limits and subaccount types honoured, and every character written differently listed in the export's warnings and the README (grouped by substitution, TINs masked). The 1099 worksheet stops at as_of too. PDFs print CJK, Arabic, Hebrew, Thai and Devanagari (Noto fallbacks, OFL), and so does the viewer. has_full_tin reads Unicode separators. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T3gXMVt7XJPi6ens1or9Dj
This commit is contained in:
48 files changed
+5661
-317
No files matched your search
@@ -1185,15 +1185,27 @@ fn mcp_import_export_over_stdio() {
|
||||
|
||||
let chart = mcp.call(
|
||||
"books.import_chart_csv",
|
||||
json!({"csv_text": "code,name,type,parent_code\n1000,Cash,asset,\n4000,Revenue,revenue,\n"}),
|
||||
json!({"csv_text": "code,name,type,parent_code\n1000,Cash,asset,\n4000,Revenue,revenue,\n6010,Café 北京,expense,\n"}),
|
||||
);
|
||||
assert_eq!(chart["count"], 2);
|
||||
assert_eq!(chart["count"], 3);
|
||||
|
||||
// The IIF is plain ASCII text with CR LF line endings, inline; what it
|
||||
// writes differently from the books is in warnings (rules.md B-34).
|
||||
let iif = mcp.call(
|
||||
"books.export",
|
||||
json!({"format": "iif", "report": "journal"}),
|
||||
);
|
||||
assert!(iif["content"].as_str().unwrap().contains("!TRNS"));
|
||||
let text = iif["content"].as_str().unwrap();
|
||||
assert!(text.contains("!TRNS") && text.is_ascii() && text.ends_with("\r\n"));
|
||||
assert!(
|
||||
text.contains("\r\nACCNT\tCafe Bei Jing\tEXP\t6010\r\n"),
|
||||
"{text}"
|
||||
);
|
||||
assert!(iif.get("content_encoding").is_none(), "{iif}");
|
||||
assert_eq!(
|
||||
iif["warnings"],
|
||||
json!(["account 6010's name \"Café 北京\" is written \"Cafe Bei Jing\""])
|
||||
);
|
||||
|
||||
let xlsx = mcp.call(
|
||||
"books.export",
|
||||
|
||||
Reference in new issue
Block a user