{-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} module Tax.Canada.T1.FieldNames.YT (t1Fields) where import Rank2 qualified import Tax.FDF (FieldConst (Field, NoField), Entry (..), within) import Tax.Canada.Shared (subCalculationFields) import Tax.Canada.T1.Types import Tax.Canada.T1.Types qualified as Page8 (Page8(..)) import Tax.Canada.T1.FieldNames.BC qualified as BC import Tax.Canada.T1.FieldNames.NT qualified as NT import Tax.Canada.T1.FieldNames.ON qualified as ON t1Fields :: T1 FieldConst t1Fields :: T1 FieldConst t1Fields = T1 FieldConst NT.t1Fields{ page2 = within "form1" . within "Page2" . within "Step1-Continued" Rank2.<$> BC.page2Fields, page7 = within "form1" . within "Page7" Rank2.<$> page7Fields, page8 = within "form1" . within "Page8" Rank2.<$> page8Fields} page7Fields :: Page7 FieldConst page7Fields = Page7 { $sel:partC_NetFederalTax:Page7 :: Page7PartC FieldConst partC_NetFederalTax = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "PartC" (forall {a}. FieldConst a -> FieldConst a) -> Page7PartC FieldConst -> Page7PartC FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> Page7PartC p -> Page7PartC q Rank2.<$> Page7PartC FieldConst partCFields, $sel:step6_RefundOrBalanceOwing:Page7 :: Page7Step6 FieldConst step6_RefundOrBalanceOwing = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "Step6" (forall {a}. FieldConst a -> FieldConst a) -> Page7Step6 FieldConst -> Page7Step6 FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> Page7Step6 p -> Page7Step6 q Rank2.<$> Page7Step6 FieldConst page7step6Fields} partCFields :: Page7PartC FieldConst partCFields = Page7PartC FieldConst ON.partCFields { line40900 = Field ["Line4100", "Line40900", "Line_40900_Amount"] Amount, line41000 = Field ["Line4100", "Line_41000_Amount"] Amount} page7step6Fields :: Page7Step6 FieldConst page7step6Fields = Page7Step6 FieldConst ON.page7step6Fields { line140 = Field ["Line142", "Amount"] Amount, line_43200_FirstNationsTax = Field ["Line43200", "Line_43200_Amount"] Amount} page8Fields :: Page8 FieldConst page8Fields = Page8 FieldConst BC.page8Fields { Page8.step6_RefundOrBalanceOwing = within "Step6-Cont" Rank2.<$> page8step6Fields, taxPreparer = within "Line_49000_IfFeeWasCharged" Rank2.<$> BC.taxPreparerFields} page8step6Fields :: Page8Step6 FieldConst page8step6Fields = Page8Step6 FieldConst ON.page8step6Fields { line_43500_totalpayable = Field ["Line149", "Amount"] Amount, line_44100 = Field ["Line44100", "Line_44000_Amount"] Amount, line_46800 = Field ["Line46900", "sfline46800end", "Line_46800_Amount"] Amount, line_47555_TaxPaid = Field ["Line47555", "Line_47555_Amount"] Amount, line164_Refund_or_BalanceOwing = Field ["Line169", "Amount"] Amount}