{-# LANGUAGE OverloadedStrings #-}
module Text.Edifact.Common.Composites
( compositeS001
, compositeS002
, compositeS003
, compositeS004
, compositeS005
, compositeS009
, compositeS010
) where
import Text.Edifact.Common.Simples (simple0001, simple0002,
simple0004, simple0007,
simple0008, simple0010,
simple0014, simple0017,
simple0019, simple0022,
simple0025, simple0042,
simple0046, simple0051,
simple0052, simple0054,
simple0057, simple0065,
simple0070, simple0073,
simple0080, simple0133)
import Text.Edifact.Parsing
import Text.Edifact.Types (Value)
-- | Derived from this specification:
--
-- > 010 0001 Syntax identifier M a4
-- > 020 0002 Syntax version number M an1
-- > 030 0080 Service code list directory version number C an..6
-- > 040 0133 Character encoding, coded C an..3
--
-- Dependencies: 'simple0001', 'simple0002', 'simple0080', 'simple0133'.
compositeS001 :: Parser Value
compositeS001 =
composite "S001"
[ "010" .@ mandatory simple0001
, "020" .@ mandatory simple0002
, "030" .@ optional simple0080
, "040" .@ optional simple0133
]
-- | Derived from this specification:
--
-- > 010 0004 Interchange sender identification M an..35
-- > 020 0007 Identification code qualifier C an..4
-- > 030 0008 Interchange sender internal identification C an..35
-- > 040 0042 Interchange sender internal sub-identification C an..35
--
-- Dependencies: 'simple0004', 'simple0007', 'simple0008', 'simple0042'.
compositeS002 :: Parser Value
compositeS002 =
composite "S002"
[ "010" .@ mandatory simple0004
, "020" .@ optional simple0007
, "030" .@ optional simple0008
, "040" .@ optional simple0042
]
-- | Derived from this specification:
--
-- > 010 0010 Interchange recipient identification M an..35
-- > 020 0007 Identification code qualifier C an..4
-- > 030 0014 Interchange recipient internal identification C an..35
-- > 040 0046 Interchange recipient internal sub-identification C an..35
--
-- Dependencies: 'simple0007', 'simple0010', 'simple0014', 'simple0046'.
compositeS003 :: Parser Value
compositeS003 =
composite "S003"
[ "010" .@ mandatory simple0010
, "020" .@ optional simple0007
, "030" .@ optional simple0014
, "040" .@ optional simple0046
]
-- | Derived from this specification:
--
-- > 010 0017 Date M n6
-- > 020 0019 Time M n4
--
-- Dependencies: 'simple0017', 'simple0019'.
compositeS004 :: Parser Value
compositeS004 =
composite "S004"
[ "010" .@ mandatory simple0017
, "020" .@ mandatory simple0019
]
-- | Derived from this specification:
--
-- > 010 0022 Recipient reference/password M an..14
-- > 020 0025 Recipient reference/password qualifier C an2
--
-- Dependencies: 'simple0022', 'simple0025'.
compositeS005 :: Parser Value
compositeS005 =
composite "S005"
[ "010" .@ mandatory simple0022
, "020" .@ optional simple0025
]
-- | Derived from this specification:
--
-- > 010 0065 Message type M an..6
-- > 020 0052 Message version number M an..3
-- > 030 0054 Message release number M an..3
-- > 040 0051 Controlling agency M an..2
-- > 050 0057 Association assigned code C an..6
--
-- Dependencies: 'simple0051', 'simple0052', 'simple0054', 'simple0057', 'simple0065'.
compositeS009 :: Parser Value
compositeS009 =
composite "S009"
[ "010" .@ mandatory simple0065
, "020" .@ mandatory simple0052
, "030" .@ mandatory simple0054
, "040" .@ mandatory simple0051
, "050" .@ optional simple0057
]
-- | Derived from this specification:
--
-- > 010 0070 Sequence of transfers M n..2
-- > 020 0073 First and last transfer C a1
--
-- Dependencies: 'simple0070', 'simple0073'.
compositeS010 :: Parser Value
compositeS010 =
composite "S010"
[ "010" .@ mandatory simple0070
, "020" .@ optional simple0073
]