{-# LANGUAGE NoMonomorphismRestriction #-} {-# OPTIONS_GHC -Wno-missing-signatures #-} module Literate.Accounting.Demo where import Data.Decimal (Decimal) import Data.List.NonEmpty qualified as NonEmpty import Data.Map.Strict qualified as Map import Data.Maybe (Maybe) import Data.String (String) import GHC.Num (complementInteger) import Literate.Accounting import Literate.Accounting.PCG.Chart posts0 = [ ( "Capital" NonEmpty.:| [] , Amounts (Map.singleton (Unit "$") (Quantity (540 :: Decimal))) ) , ( "Capital" NonEmpty.:| ["Banque"] , Amounts (Map.singleton (Unit "$") (Quantity (30 :: Decimal))) ) , ( "Immo" NonEmpty.:| ["Stable"] , Amounts (Map.singleton (Unit "&") (Quantity (12 :: Decimal))) ) ] b0 :: Balance String Unit (Quantity Decimal) Maybe b0 = balance posts0 {- | >>> x0 Compte {compteCode = 1, compteSystem = SystemDeBase, compteName = "", compteDescription = "Capital"} -} x0 :: Compte x0 = c1_Comptes_de_capitaux {- | >>> trickleBalance b0 Balance {balanceByAccount = + "Capital" Trickle {exclusive = fromList [("$",540)], inclusive = fromList [("$",570)]} | ` "Banque" Trickle {exclusive = fromList [("$",30)], inclusive = fromList [("$",30)]} ` "Immo" Trickle {exclusive = fromList [], inclusive = fromList [("&",12)]} ` "Stable" Trickle {exclusive = fromList [("&",12)], inclusive = fromList [("&",12)]} , balanceByUnit = fromList [("$",SumForUnit {sumForUnitQuantity = 570, sumForUnitAccounts = fromList [("Capital" :| [],()),("Capital" :| ["Banque"],())]}),("&",SumForUnit {sumForUnitQuantity = 12, sumForUnitAccounts = fromList [("Immo" :| ["Stable"],())]})]} -} {- >>> e [("Capital" :| [],fromList [("$",540)]),("Capital" :| ["Banque"],fromList [("$",30)]),("Immo" :| ["Stable"],fromList [("&",12)])] -} e = posts0