Example #1
0
        /// <summary>
        /// The map op list type.
        /// </summary>
        /// <param name="statement">
        /// The statement.
        /// </param>
        /// <param name="recordNumber">
        /// The record Number.
        /// </param>
        /// <returns>
        /// The <see cref="RECType"/> .
        /// </returns>
        protected virtual OPType MapOpListType(StatementBatch statement, int recordNumber)
        {
            // Загрузка старых данных если требуется
            var statementChangeDates = LoadOldStatementData(statement);

            var optype = new OPType();

            optype.N_REC           = recordNumber.ToString(CultureInfo.InvariantCulture);
            optype.ID              = statement.Id;
            optype.ISACTIVE        = (statement.Version == statement.VersionExport && statement.IsActive) ? "1" : "0";
            optype.VERSION         = statement.VersionExport.ToString(CultureInfo.InvariantCulture);
            optype.NEED_NEW_POLICY = statement.AbsentPrevPolicy.HasValue ? statement.AbsentPrevPolicy.Value : false;

            // Данные об обращении в СМО
            optype.VIZIT = GetVizit(statement);

            // Данные о застрахованном лице
            optype.PERSON = GetPerson(statement);

            // Документы
            optype.DOC_LIST = new List <DocType>();
            optype.DOC_LIST.Add(GetDocument(statement.DocumentUdl, DocumentCategory.Udl));
            if (statement.DocumentRegistration != null && statement.DocumentUdl.Id != statement.DocumentRegistration.Id)
            {
                optype.DOC_LIST.Add(GetDocument(statement.DocumentRegistration, DocumentCategory.Registration));
            }

            if (statement.ResidencyDocument != null)
            {
                optype.DOC_LIST.Add(GetDocument(statement.ResidencyDocument, DocumentCategory.Residency));
            }

            // Адрес регистрации
            optype.ADDRES_G = GetAddress(statement.Address, statement.Kladr);

            // Адрес проживания
            if (statement.Address2 != null && statement.Address.Id != statement.Address2.Id)
            {
                optype.ADDRES_P = GetAddress(statement.Address2, statement.Kladr2);
            }

            // Событие страхования
            optype.INSURANCE = GetInsurance(statement);

            // Медиа
            optype.PERSONB = GetPersonBList(statement);

            // Изменения по версиям
            optype.STATEMENT_CHANGE = statementChangeDates != null && statementChangeDates.Count > 0
                                  ? statementChangeDates.Select(
                x =>
                new StatementChange
            {
                VERSION =
                    x.Version.ToString(
                        CultureInfo
                        .InvariantCulture),
                FIELD = x.Field.Code,
                DATA  = x.Datum
            }).ToList()
                                  : null;

            return(optype);
        }
Example #2
0
        /// <summary>
        /// The map rec list type.
        /// </summary>
        /// <param name="statement">
        /// The statement.
        /// </param>
        /// <returns>
        /// The <see cref="RECType"/> .
        /// </returns>
        protected virtual RECType MapRecListType(StatementBatch statement)
        {
            // Загрузка старых данных если требуется
            var statementChangeDates = LoadOldStatementData(statement);

            var recType = new RECType();

            recType.Id            = statement.Id;
            recType.IsActive      = (statement.Version == statement.VersionExport && statement.IsActive) ? "1" : "0";
            recType.Version       = statement.VersionExport.ToString(CultureInfo.InvariantCulture);
            recType.NeedNewPolicy = statement.AbsentPrevPolicy.HasValue ? statement.AbsentPrevPolicy.Value : false;

            // Данные об обращении в СМО
            recType.Vizit = GetVizit(statement);

            // Данные о застрахованном лице
            recType.Person = GetPerson(statement);

            // Документы
            recType.Doc = new List <DocType>();
            recType.Doc.Add(GetDocument(statement.DocumentUdl, DocumentCategory.Udl));
            if (statement.DocumentRegistration != null && statement.DocumentUdl.Id != statement.DocumentRegistration.Id)
            {
                recType.Doc.Add(GetDocument(statement.DocumentRegistration, DocumentCategory.Registration));
            }

            if (statement.ResidencyDocument != null)
            {
                recType.Doc.Add(GetDocument(statement.ResidencyDocument, DocumentCategory.Residency));
            }

            // Адрес регистрации
            recType.AddresG = GetAddress(statement.Address, statement.Kladr);

            // Адрес проживания
            if (statement.Address2 != null && statement.Address.Id != statement.Address2.Id)
            {
                recType.AddresP = GetAddress(statement.Address2, statement.Kladr2);
            }

            // Событие страхования
            recType.Insurance = GetInsurance(statement);

            // Медиа
            recType.PersonB = GetPersonBList(statement);

            // Изменения по версиям
            recType.StatementChange = statementChangeDates != null && statementChangeDates.Count > 0
                                  ? statementChangeDates.Select(
                x =>
                new StatementChange
            {
                VERSION =
                    x.Version.ToString(
                        CultureInfo
                        .InvariantCulture),
                FIELD = x.Field.Code,
                DATA  = x.Datum
            }).ToList()
                                  : null;

            return(recType);
        }
Example #3
0
        /// <summary>
        /// Загружает старые данные в завяление, если версия в батче и текущая версия не совпадают
        /// </summary>
        /// <param name="statement">
        /// The statement.
        /// </param>
        /// <returns>
        /// The
        ///   <see>
        ///     <cref>IList</cref>
        ///   </see>
        ///   .
        /// </returns>
        protected IList <StatementChangeDate> LoadOldStatementData(StatementBatch statement)
        {
            if (statement.Version == statement.VersionExport)
            {
                return(null);
            }

            var session     = ObjectFactory.GetInstance <ISessionFactory>().GetCurrentSession();
            var oldDataList =
                session.QueryOver <StatementChangeDate>()
                .Where(x => x.Statement.Id == statement.Id && x.Version == statement.VersionExport)
                .List();

            foreach (var oldData in oldDataList)
            {
                switch (oldData.Field.Id)
                {
                case TypeFields.Enp:
                    statement.NumberPolicy = oldData.Datum;
                    break;

                case TypeFields.FirstName:
                    statement.InsuredPersonData.FirstName = oldData.Datum;
                    break;

                case TypeFields.LastName:
                    statement.InsuredPersonData.LastName = oldData.Datum;
                    break;

                case TypeFields.MiddleName:
                    statement.InsuredPersonData.MiddleName = oldData.Datum;
                    break;

                case TypeFields.Birthday:
                    DateTime birthday;
                    if (DateTime.TryParse(oldData.Datum, out birthday))
                    {
                        statement.InsuredPersonData.Birthday = birthday;
                    }

                    break;

                case TypeFields.Birthplace:
                    statement.InsuredPersonData.Birthplace = oldData.Datum;
                    break;

                case TypeFields.GenderId:
                    int genderId;
                    int.TryParse(oldData.Datum, out genderId);
                    statement.InsuredPersonData.Gender = ObjectFactory.GetInstance <IConceptCacheManager>().GetById(genderId);
                    break;

                case TypeFields.Snils:
                    statement.InsuredPersonData.Snils = oldData.Datum;
                    break;

                case TypeFields.DocumentTypeId:
                    int docTypeId;
                    int.TryParse(oldData.Datum, out docTypeId);
                    statement.DocumentUdl.DocumentType = ObjectFactory.GetInstance <IConceptCacheManager>().GetById(docTypeId);
                    break;

                case TypeFields.DocumentSeries:
                    statement.DocumentUdl.Series = oldData.Datum;
                    break;

                case TypeFields.DocumentNumber:
                    statement.DocumentUdl.Number = oldData.Datum;
                    break;
                }
            }

            return(oldDataList);
        }