P3: dated 1099 decisions, payment methods and the card exception (defects 23, 12, 18, D-40)
check / check (push) Canceled after 0s
check / check (push) Canceled after 0s
A vendor's 1099 decision is its own dated fact (files NEC or MISC, not reportable with its reason, or undetermined), applied by each payment's date. Payment methods are recorded; card and network payments are left out and listed; a member's check through financing counts; a bank payment with no method counts (D-40); $2,000 for payments after 2025. One worksheet for the tool, the viewer and the CPA package. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T3gXMVt7XJPi6ens1or9Dj
This commit is contained in:
77 files changed
+11455
-970
No files matched your search
@@ -9,8 +9,8 @@
|
||||
|
||||
use chrono::{Datelike, Days, Months, NaiveDate};
|
||||
use ledger_core::{
|
||||
AccountType, CloseTo, Currency, Form1099, Frequency, Money, NewAsset, NewRecurring,
|
||||
NewSchedule, ScheduleKind, Side, arap::DocumentLine,
|
||||
AccountType, CloseTo, Currency, Dated1099, Decision1099, Form1099, Frequency, InstrumentKind,
|
||||
Money, NewAsset, NewRecurring, NewSchedule, ScheduleKind, Side, arap::DocumentLine,
|
||||
};
|
||||
use ledger_store::{Statement, Store, StoreError, Subject};
|
||||
use rust_decimal::Decimal;
|
||||
@@ -245,12 +245,33 @@ pub fn build(dir: &Path, today: NaiveDate) -> Result<(), StoreError> {
|
||||
let client_class = s.add_class("Client work")?;
|
||||
let template_class = s.add_class("Templates")?;
|
||||
|
||||
// Each vendor's 1099 decision, as the owner made it when they were
|
||||
// first paid; the card is a payment method, so what was charged to it
|
||||
// shows on the 1099 worksheet as excluded (Form 1099-K's).
|
||||
let decided = |form| {
|
||||
Dated1099::from_beginning(
|
||||
Decision1099::Files(form),
|
||||
Some(ledger_core::settings::Source {
|
||||
decided_by: "Alex Rivera".into(),
|
||||
decided_on: start,
|
||||
citation: None,
|
||||
note: None,
|
||||
}),
|
||||
)
|
||||
};
|
||||
let sam = s.add_vendor("Sam Okafor")?;
|
||||
s.set_vendor_1099(sam, Some(Form1099::Nec), true)?;
|
||||
s.set_vendor_1099(sam, &decided(Form1099::Nec), Some(true))?;
|
||||
let riley = s.add_vendor("Riley Chen")?;
|
||||
s.set_vendor_1099(riley, Some(Form1099::Nec), false)?;
|
||||
s.set_vendor_1099(riley, &decided(Form1099::Nec), Some(false))?;
|
||||
let landlord = s.add_vendor("Everett Lofts LLC")?;
|
||||
s.set_vendor_1099(landlord, Some(Form1099::Misc), true)?;
|
||||
s.set_vendor_1099(landlord, &decided(Form1099::Misc), Some(true))?;
|
||||
s.add_instrument(
|
||||
InstrumentKind::BusinessCard,
|
||||
"Business credit card",
|
||||
Some("4242"),
|
||||
None,
|
||||
card,
|
||||
)?;
|
||||
let customers: Vec<u64> = [
|
||||
"Fern & Field Coffee",
|
||||
"Bramble Outdoor Co.",
|
||||
|
||||
Reference in new issue
Block a user