{ invoiceLogDate = "2025-12-29"
, invoiceLogDuration = 0.5
, invoiceLogAction = ["review"]
- , invoiceLogScope = ["NGIpkgs", "Funkwhale"]
+ , invoiceLogScope = ["NGIpkgs", "Funkwhale"] -- goes into NGI Review
, invoiceLogReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1707#discussion_r2651644145"]
, invoiceLogDescription = ""
}
{ invoiceLogDate = "2026-01-07"
, invoiceLogDuration = 1
, invoiceLogAction = ["documentation"]
- , invoiceLogScope = ["NGIpkgs", "Manuals"]
+ , invoiceLogScope = ["NGIpkgs", "Manuals"] -- goes into NGI Core
, invoiceLogReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1891"]
, invoiceLogDescription = "address reviewer’s comment"
}
{ invoiceLogDate = "2026-01-09"
, invoiceLogDuration = 2
, invoiceLogAction = ["documentation"]
- , invoiceLogScope = ["NGIpkgs", "Manuals"]
+ , invoiceLogScope = ["NGIpkgs", "Manuals"] -- goes into NGI Core
, invoiceLogReferences = []
, invoiceLogDescription = "address reviewer’s comments"
}
{ invoiceLogDate = "2026-01-12"
, invoiceLogDuration = 6
, invoiceLogAction = ["documentation"]
- , invoiceLogScope = ["NGIpkgs", "Manuals"]
+ , invoiceLogScope = ["NGIpkgs", "Manuals"] -- goes into NGI Core
, invoiceLogReferences = []
, invoiceLogDescription = "render options"
}
{ invoiceLogDate = "2026-01-13"
, invoiceLogDuration = 1
, invoiceLogAction = ["documentation"]
- , invoiceLogScope = ["NGIpkgs", "Manuals"]
+ , invoiceLogScope = ["NGIpkgs", "Manuals"] -- goes into NGI Core
, invoiceLogReferences = []
, invoiceLogDescription = "update"
}
{ invoiceLogDate = "2026-01-19"
, invoiceLogDuration = 2
, invoiceLogAction = ["documentation"]
- , invoiceLogScope = ["NGIpkgs", "Manuals"]
+ , invoiceLogScope = ["NGIpkgs", "Manuals"] -- goes into NGI Core
, invoiceLogReferences = []
, invoiceLogDescription = "split into several PDF"
}
{ invoiceLogDate = "2026-01-22"
, invoiceLogDuration = 4
, invoiceLogAction = ["development"]
- , invoiceLogScope = ["NGIpkgs", "Manuals"]
+ , invoiceLogScope = ["NGIpkgs", "Manuals"] -- goes into NGI Core
, invoiceLogReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2010"]
, invoiceLogDescription = "address reviewers’ concerns"
}
, invoiceLogReferences = []
, invoiceLogDescription = "weekly meeting"
}
+ , InvoiceLog
+ { invoiceLogDate = "2026-01-25"
+ , invoiceLogDuration = 4
+ , invoiceLogAction = ["development"]
+ , invoiceLogScope = ["NGIpkgs", "Seppo"]
+ , invoiceLogReferences = []
+ , invoiceLogDescription = "begin packaging"
+ }
+ , InvoiceLog
+ { invoiceLogDate = "2026-01-26"
+ , invoiceLogDuration = 5
+ , invoiceLogAction = ["development"]
+ , invoiceLogScope = ["NGIpkgs", "Seppo"]
+ , invoiceLogReferences = []
+ , invoiceLogDescription = "continue packaging"
+ }
+ , InvoiceLog
+ { invoiceLogDate = "2026-01-27"
+ , invoiceLogDuration = 5
+ , invoiceLogAction = ["development"]
+ , invoiceLogScope = ["NGIpkgs", "Seppo"]
+ , invoiceLogReferences = []
+ , invoiceLogDescription = "continue packaging"
+ }
]
invoiceRateNGIpkgs =
and $
[ inv & invoiceLogDate & (>= "2025-12-23")
, inv & invoiceLogDate & (<= "2026-12-31")
- , or $
+ , inv & invoiceLogScope & (/= ["NGIpkgs", "Manuals"])
+ , inv & invoiceLogScope & (/= ["NGIpkgs", "Funkwhale"])
+ , not $
+ and $
+ [ inv & invoiceLogDate & (>= "2026-01-09")
+ , inv & invoiceLogDate & (<= "2026-01-28")
+ , inv & invoiceLogAction & (== ["organization"])
+ , inv & invoiceLogScope & (== ["NGIpkgs"])
+ ]
+ & list
+ ]
+ & list
+ }
+ , InvoiceId
+ { invoiceIdRecipient = Tests.Organization.nixosFoundationNGITeam
+ , invoiceIdType = InvoiceTypeSale
+ , invoiceIdCount = 3
+ }
+ := let invoiceEmittedOn = "2026-01-28"
+ in invoice
+ { invoiceOrders = ["contract n°2026-FixMe"]
+ , invoiceEmittedOn
+ , invoicePaymentDueBefore = invoiceEmittedOn & Time.addLocalTime (31 * Time.nominalDay)
+ , invoiceIssuer = Tests.Organization.julmInfo
+ , invoiceRecipient = Tests.Organization.nixosFoundationNGITeam
+ , invoiceRates = invoiceRateNGIpkgs
+ , invoiceMentions =
+ [ InvoiceMentionTVANonApplicable
+ , InvoiceMentionIndemnitéForfaitaire
+ , InvoiceMentionIndemnitéTaux (12.15 :: Amount 100 (UnitName "%"))
+ ]
+ , invoiceLogs =
+ ngipkgsLog
+ & List.filter \inv ->
+ or $
+ [ and $
[ inv & invoiceLogDate & (>= "2026-01-21")
- , inv & invoiceLogScope & (/= ["NGIpkgs", "Manuals"])
+ , inv & invoiceLogDate & (<= "2026-12-31")
+ , inv & invoiceLogScope & (== ["NGIpkgs", "Manuals"])
+ ]
+ & list
+ , and $
+ [ inv & invoiceLogDate & (>= "2025-12-29")
+ , inv & invoiceLogDate & (<= "2026-12-31")
+ , inv & invoiceLogScope & (== ["NGIpkgs", "Funkwhale"])
+ ]
+ & list
+ , and $
+ [ inv & invoiceLogDate & (>= "2026-01-09")
+ , inv & invoiceLogDate & (<= "2026-01-28")
+ , inv & invoiceLogAction & (== ["organization"])
+ , inv & invoiceLogScope & (== ["NGIpkgs"])
]
& list
]