PostTypes.asn

PostTypes DEFINITIONS IMPLICIT TAGS ::=

BEGIN

EXPORTS PostType,

PostInfo;

IMPORTS DateAndTime

FROM Sorm

TAGGED,

sorm-post-type,

sorm-post-type-mail,

sorm-post-type-package,

sorm-post-type-money-order,

sorm-post-type-secogram,

sorm-post-type-postal-wrapper,

sorm-post-type-postcard,

sorm-post-type-ems,

sorm-post-type-small-packet,

sorm-post-type-bag-international

FROM Classification

PostOffice

FROM PostIdentifiers

MoneyType

FROM Dictionaries

;

PostType ::= SEQUENCE {

id TAGGED.&id ({ReportedPostVariants}),

data TAGGED.&Data ({ReportedPostVariants} {@id})

}

ReportedPostVariants TAGGED ::= {

postMail --- письмо

| postPackage --- посылка

| postMoneyOrder --- денежный перевод

| postSecogram --- секограмма

| postalWrapper --- бандероль

| postCard --- почтовая карточка

| postEMS --- экспресс-отправление

| postPacket --- пакет

| postBagInternational --- мешок, международное

}

MailingType ::= ENUMERATED {

simple (0), -- простое почтовое отправление

registered (1), -- заказное почтовое

отправление

international (3), -- международное почтовое

отправление

ordinary (4), -- обыкновенное почтовое

отправление

with-declared-value (5), -- почтовое отправление с

объявленной ценностью

with-declared-value-and-cod (6) -- почтовое отправление

с объявленной ценностью и наложенным платежом

}

--- письмо

postMail TAGGED ::= {

OLD { sorm-post-type-mail}

DATA PostMailContent

}

--- письмо

PostMailContent ::= SEQUENCE {

type-mail MailingType, --- тип письма

pay-on-delivery [2] MoneyType OPTIONAL, --- наложенный

платеж

first-class [3] BOOLEAN OPTIONAL --- почтовое

отправление первым классом

}

-- посылка

postPackage TAGGED ::= {

OID {sorm-post-type-package}

DATA PostPackageContent

}

--- посылка

PostPackageContent ::= SEQUENCE {

type-package MailingType, --- тип посылки

pay-on-delivery [2] MoneyType OPTIONAL --- наложенный платеж

}

--- денежный перевод

postMoneyOrder TAGGED ::= {

OID {sorm-post-type-money-order}

DATA PostMoneyOrderContent

}

--- денежный перевод

PostMoneyOrderContent ::= SEQUENCE {

amount Money Type, --- величина почтового

перевода

inn [1] NumericString (SIZE (10 .. 12)) OPTIONAL, --- ИНН

correspondent-account [2] NumericString (SIZE (20)) OPTIONAL, --- кор.

счет

current-account [3] PrintableString (SIZE (20 .. 25)) OPTIONAL, --- рас.

счет

name-bank [4] UTF8String (SIZE (1 .. 256)) OPTIONAL, ---

наименование банка

bic [5] NumericString (SIZE (9)) OPTIONAL, --- БИК

message [6] UTF8String (SIZE (1 .. 70)) OPTIONAL -- Сообщение

}

--- секограмма

postSecogram TAGGED ::= {

OID {sorm-post-type-secogram}

DATA PostSecogramContent

}

--- секограмма

PostSecogramContent ::= MailingType

--- бандероль

postalWrapper TAGGED ::= {

OID {sorm-post-type-postal-wrapper}

DATA PostalWrapperContent

}

--- бандероль

PostalWrapperContent ::= SEQUENCE {

type-wrapper MailingType, --- тип бандероли

pay-on-delivery [2] MoneyType OPTIONAL, --- наложенный платеж

first-class [3] BOOLEAN OPTIONAL --- почтовое отправление

первым классом

}

--- почтовая карточка

postCard TAGGED ::= {

OID {sorm-post-type-postcard}

DATA PostcardContent

}

--- почтовая карточка

PostcardContent ::= MailingType

--- экспресс-отправление

postEMS TAGGED ::= {

OID {sorm-post-type-ems}

DATA PostEMSContent

}

--- экспресс-отправление

PostEMSContent ::= SEQUENCE {

type-ems MailingType, --- тип экспресс-отправления

pay-on-delivery [2] Money Type OPTIONAL --- наложенный платеж

}

--- пакет

postPacket TAGGED ::= {

OID {sorm-post-type-small-packet}

DATA PostPacketContent

}

--- пакет

PostPacketContent ::= MailingType

--- мешок, международное

postBagInternational TAGGED ::= {

OID {sorm-post-type-bag-international}

DATA PostBagContent

}

--- мешок, международное

PostBagContent ::= MailingType

--- характеристики отправления

PostInfo ::= SEQUENCE {

post-weight [0] Weight OPTIONAL, --- вес почтового

отправления

post-cost [1] MoneyType OPTIONAL, --- объявленная

стоимость отправления

post-description [2] UTF8String (SIZE (1 .. 1024)) OPTIONAL ---

заявленное описание содержимого отправления

}

-- вес почтового отправления

Weight ::= SEQUENCE {

weight [0] INTEGER OPTIONAL, --- грамм

weight-text [1] UTF8String (SIZE (1 .. 16)) OPTIONAL --- текстовое

описание веса

}

END