コード例 #1
0
        /// <summary>
        /// The check.
        /// </summary>
        /// <param name="statement">
        /// The statement.
        /// </param>
        public override void CheckObject(Statement statement)
        {
            if (statement == null)
            {
                throw new ArgumentNullException("statement");
            }

            try
            {
                if (!string.IsNullOrEmpty(statement.InsuredPersonData.Snils))
                {
                    if (statement.InsuredPersonData.NotCheckSnils.HasValue && statement.InsuredPersonData.NotCheckSnils.Value)
                    {
                        return;
                    }

                    var res = SnilsChecker.CheckIdentifier(statement.InsuredPersonData.Snils);
                    if (!res)
                    {
                        throw new FaultSnilsException();
                    }
                }
            }
            catch (NullReferenceException)
            {
                throw new FaultSnilsException();
            }
        }
コード例 #2
0
        /// <summary>
        /// The get pfr exchange.
        /// </summary>
        /// <param name="item">
        /// The item.
        /// </param>
        /// <param name="batch">
        /// The batch.
        /// </param>
        /// <returns>
        /// The <see cref="QueryResponse"/>.
        /// </returns>
        protected override QueryResponse GetQueryResponse(string item, Batch batch)
        {
            var result = new QueryResponse
            {
                Snils      = SnilsChecker.SsToShort(item),
                Feature    = ConceptCacheManager.GetById(PfrFeature.PfrFeature1),
                Message    = batch.Messages.First(),
                Employment = true
            };

            return(result);
        }
コード例 #3
0
ファイル: ImporterFileRs.cs プロジェクト: syurov/rt.srz
        /// <summary>
        /// The get pfr exchange.
        /// </summary>
        /// <param name="item">
        /// The item.
        /// </param>
        /// <param name="batch">
        /// The batch.
        /// </param>
        /// <returns>
        /// The <see cref="QueryResponse"/>.
        /// </returns>
        protected override QueryResponse GetQueryResponse(Zl item, Batch batch)
        {
            var result = new QueryResponse
            {
                Message           = batch.Messages.First(),
                Snils             = SnilsChecker.SsToShort(item.Snils),
                Feature           = GetFeature(item),
                InsuredPersonData =
                    new InsuredPersonDatum
                {
                    Snils      = SnilsChecker.SsToShort(item.Snils),
                    LastName   = item.Fam,
                    FirstName  = item.Im,
                    MiddleName = item.Ot,
                    Birthday   =
                        string.IsNullOrEmpty(item.Dr)
                             ? null
                             : (DateTime?)
                        DateTime.ParseExact(item.Dr, "dd.MM.yyyy", null),
                    BirthdayType = int.Parse(item.Dostdr),
                    Birthplace   = item.AddressR,
                    Gender       =
                        !string.IsNullOrEmpty(item.W) &&
                        item.W.ToLower() == "м"
                             ? ConceptCacheManager.GetById(Sex.Sex1)
                             : ConceptCacheManager.GetById(Sex.Sex2),
                },
                Address = new address {
                    Postcode = item.Index, Unstructured = item.AddressReg
                },
                DocumentUdl = new Document(),
                Employment  = item.IdZl == "1"
            };

            if (item.Doc != null)
            {
                result.DocumentUdl.DateIssue = string.IsNullOrEmpty(item.Doc.DateDoc)
                                         ? null
                                         : (DateTime?)DateTime.ParseExact(item.Doc.DateDoc, "dd.MM.yyyy", null);
                if (result.DocumentUdl.DateIssue.HasValue && result.DocumentUdl.DateIssue.Value <= new DateTime(1753, 1, 1))
                {
                    result.DocumentUdl.DateIssue = null;
                }

                result.DocumentUdl.Number       = item.Doc.NDoc;
                result.DocumentUdl.Series       = item.Doc.SDoc;
                result.DocumentUdl.DocumentType =
                    ConceptCacheManager.GetBy(x => x.ShortName == item.Doc.NameDoc && x.Oid.Id == Oid.ДокументУдл)
                    .FirstOrDefault();
            }

            return(result);
        }
コード例 #4
0
        /// <summary>
        /// The write prz buff.
        /// </summary>
        /// <param name="st">
        /// The st.
        /// </param>
        /// <param name="log">
        /// The log.
        /// </param>
        /// <param name="sessionAtl">
        /// The session atl.
        /// </param>
        /// <param name="medicalInsurance">
        /// The medical insurance.
        /// </param>
        /// <param name="op">
        /// The op.
        /// </param>
        /// <returns>
        /// The <see cref="Przbuf"/>.
        /// </returns>
        private Przbuf WritePrzBuff(
            StatementMaximum st,
            Przlog log,
            ISession sessionAtl,
            MedicalInsurance medicalInsurance,
            string op)
        {
            var contentManager    = ObjectFactory.GetInstance <IContentManager>();
            var personData        = st.InsuredPersonData;
            var documentUdl       = st.DocumentUdl;
            var address           = st.Address;
            var address2          = st.Address2 ?? st.Address;
            var documentResidency = st.ResidencyDocument;

            ////if (documentResidency == null && (st.InsuredPersonData.Citizenship == null || st.InsuredPersonData.Citizenship.Id != Country.RUS))
            ////{
            ////  documentResidency = documentUdl;
            ////}
            var contactInfo = st.ContactInfo;
            var pvp         = st.PointDistributionPolicy;
            var smo         = pvp.Parent;

            var foto               = contentManager.GetFoto(st.InsuredPersonData.Id);
            var signature          = contentManager.GetSignature(st.InsuredPersonData.Id);
            var okatoRn            = GetOkatoRn(address, sessionAtl) ?? string.Empty;
            var okatoPrn           = GetOkatoRn(address2, sessionAtl) ?? string.Empty;
            var regulatoryAddress  = address.Regulatory();
            var regulatoryAddress2 = address2.Regulatory();
            var przBuff            = new Przbuf
            {
                Fam = personData.LastName,
                Im  = personData.FirstName,
                Ot  = personData.MiddleName,
                W   = int.Parse(personData.Gender.Code),
                Dr  = personData.Birthday,
                Dra = personData.IsIncorrectDate,
                Drt = personData.BirthdayType.HasValue ? personData.BirthdayType.Value : 1,
                Mr  = personData.Birthplace,
                Ss  =
                    !string.IsNullOrEmpty(personData.Snils)
                          ? SnilsChecker.SsToLong(personData.Snils)
                          : null,
                Cn        = personData.Citizenship != null ? personData.Citizenship.Code : "Б/Г",
                Kateg     = int.Parse(personData.Category.Code),
                BirthOksm = personData.OldCountry != null ? personData.OldCountry.Code : null,

                // Документ УДЛ
                Doctp  = documentUdl.DocumentType.Code,
                Docs   = documentUdl.Series,
                Docn   = documentUdl.Number,
                Docdt  = documentUdl.DateIssue,
                Docend = documentUdl.DateExp,
                Docorg = documentUdl.IssuingAuthority,

                // Адрес регистрации
                Subj =
                    !string.IsNullOrEmpty(address.Okato)
                          ? address.Okato.Substring(0, Math.Min(2, address.Okato.Length)) + "000"
                          : okatoRn.Substring(0, Math.Min(2, okatoRn.Length)) + "000",
                Rn     = okatoRn,
                Indx   = address.Postcode,
                Rnname = address.Area,
                City   = address.City,
                Np     =
                    !string.IsNullOrEmpty(address.Town)
                          ? address.Town
                          : !string.IsNullOrEmpty(address.City) ? address.City : address.Subject,
                Ul  = address.Street,
                Dom = address.House,
                Kor = address.Housing,
                Kv  =
                    address.Room.HasValue
                          ? address.Room.Value.ToString(CultureInfo.InvariantCulture)
                          : string.Empty,
                Dmj    = address.DateRegistration,
                Kladrg = regulatoryAddress != null ? regulatoryAddress.Code : null,

                // Адрес проживания
                Psubj =
                    !string.IsNullOrEmpty(address2.Okato)
                          ? address2.Okato.Substring(0, Math.Min(2, address2.Okato.Length)) + "000"
                          : okatoPrn.Substring(0, Math.Min(2, okatoPrn.Length)) + "000",
                Prn     = okatoPrn,
                Pindx   = address2.Postcode,
                Prnname = address2.Area,
                Pcity   = address2.City,
                Pnp     =
                    !string.IsNullOrEmpty(address2.Town)
                          ? address2.Town
                          : !string.IsNullOrEmpty(address2.City) ? address2.City : address2.Subject,
                Pul  = address2.Street,
                Pdom = address2.House,
                Pkor = address2.Housing,
                Pkv  =
                    address2.Room.HasValue
                          ? address2.Room.Value.ToString(CultureInfo.InvariantCulture)
                          : string.Empty,
                Pdmj   = address2.DateRegistration,
                Kladrp = regulatoryAddress2 != null ? regulatoryAddress2.Code : null,

                // Документ регистрации

                // Контактная информация
                Email    = contactInfo.Email,
                Phone    = contactInfo.HomePhone,
                Enp      = medicalInsurance.Enp ?? st.NumberPolicy,
                Q        = smo.Code,
                Qogrn    = smo.Ogrn,
                Prz      = st.PointDistributionPolicy.Code,
                Dviz     = st.DateFiling,
                Meth     = int.Parse(st.ModeFiling.Code),
                Sp       = personData.Category.Code,
                Petition = st.HasPetition,
                Photo    = foto ?? string.Empty,
                Signat   = signature ?? string.Empty,
                PRZLOG   = log,
                Op       = op,
                Opdoc    = GetPolisType(medicalInsurance.PolisType.Id),
                Spol     =
                    !string.IsNullOrEmpty(medicalInsurance.PolisSeria)
                          ? medicalInsurance.PolisSeria
                          : null,
                Npol  = medicalInsurance.PolisNumber,
                Dbeg  = medicalInsurance.DateFrom,
                Dend  = medicalInsurance.DateTo,
                Dstop = medicalInsurance.DateStop
            };

            var repr = st.Representative;

            if (repr != null)
            {
                przBuff.Fiopr   = string.Format("{0} {1} {2}", repr.FirstName, repr.LastName, repr.MiddleName).Crop(60);
                przBuff.Contact = repr.HomePhone;
                przBuff.Zphone  = repr.WorkPhone;
                przBuff.Zt      = repr.RelationType.Id - 317;
                przBuff.Zfam    = repr.LastName;
                przBuff.Zim     = repr.FirstName;
                przBuff.Zot     = repr.MiddleName;
                if (repr.Document != null && repr.Document.DocumentType != null)
                {
                    var doc = repr.Document;
                    przBuff.Zdoctp  = doc.DocumentType.Code;
                    przBuff.Zdocs   = doc.Series;
                    przBuff.Zdocn   = doc.Number;
                    przBuff.Zdocdt  = doc.DateIssue;
                    przBuff.Zdocorg = doc.IssuingAuthority;
                    przBuff.Zdr     = doc.DateExp;
                }
            }

            if (address.IsHomeless.HasValue && address.IsHomeless.Value)
            {
                przBuff.Bomj  = address.IsHomeless;
                przBuff.Subj  = smo.Parent.Okato.Substring(0, Math.Min(2, smo.Parent.Okato.Length)) + "000";
                przBuff.Psubj = smo.Parent.Okato.Substring(0, Math.Min(2, smo.Parent.Okato.Length)) + "000";
            }

            if (st.PreviousStatement != null)
            {
                if (st.PreviousStatement.InsuredPersonData != null)
                {
                    var oldpersonData = st.PreviousStatement.InsuredPersonData;
                    przBuff.Oldfam = oldpersonData.LastName;
                    przBuff.Oldim  = oldpersonData.FirstName;
                    przBuff.Oldot  = oldpersonData.MiddleName;
                    przBuff.Oldw   = int.Parse(oldpersonData.Gender.Code);
                    przBuff.Olddr  = oldpersonData.Birthday;

                    przBuff.Oldmr = oldpersonData.Birthplace;
                    przBuff.Oldss = !string.IsNullOrEmpty(oldpersonData.Snils) ? SnilsChecker.SsToLong(oldpersonData.Snils) : null;
                }

                // Документ УДЛ
                if (st.PreviousStatement.DocumentUdl != null)
                {
                    var olddoc = st.PreviousStatement.DocumentUdl;
                    przBuff.Olddoctp  = olddoc.DocumentType.Code;
                    przBuff.Olddocs   = olddoc.Series;
                    przBuff.Olddocn   = olddoc.Number;
                    przBuff.Olddocdt  = olddoc.DateIssue;
                    przBuff.Olddocend = olddoc.DateExp;
                    przBuff.Olddocorg = olddoc.IssuingAuthority;
                }

                // Документ УДЛ
                if (st.PreviousStatement.ResidencyDocument != null &&
                    st.PreviousStatement.ResidencyDocument.DocumentType != null)
                {
                    var olddoc = st.PreviousStatement.ResidencyDocument;
                    przBuff.Oldrdoctp  = olddoc.DocumentType.Code;
                    przBuff.Oldrdocs   = olddoc.Series;
                    przBuff.Oldrdocn   = olddoc.Number;
                    przBuff.Oldrdocdt  = olddoc.DateIssue;
                    przBuff.Oldrdocend = olddoc.DateExp;
                    przBuff.Oldrdocorg = olddoc.IssuingAuthority;
                }
            }

            if (przBuff.Dend == new DateTime(2200, 1, 1))
            {
                przBuff.Dend = null;
            }

            if (przBuff.Dstop == new DateTime(2200, 1, 1))
            {
                przBuff.Dstop = null;
            }

            if (st.FormManufacturing != null)
            {
                przBuff.Polvid = GetPolisVid(st.FormManufacturing.Id);
            }

            if (documentResidency != null && documentResidency.DocumentType != null)
            {
                // Документ на право проживания в РФ
                przBuff.Rdoctp  = documentResidency.DocumentType.Code;
                przBuff.Rdocs   = documentResidency.Series;
                przBuff.Rdocn   = documentResidency.Number;
                przBuff.Rdocdt  = documentResidency.DateIssue;
                przBuff.Rdocorg = documentResidency.IssuingAuthority;
                przBuff.Rdocend = documentResidency.DateExp;
            }

            // Помечаем заявление созданные через нашу систему
            // Будет использовать впоследствии при импорте из СРЗ
            przBuff.Num = "-1";

            // Помечаем адреса структурированный/не структурированный
            var args = address.IsNotStructureAddress.HasValue
                   ? Convert.ToInt16(address.IsNotStructureAddress.Value)
                       .ToString(CultureInfo.InvariantCulture)
                   : "0";
            var s = address2.IsNotStructureAddress.HasValue
                ? Convert.ToInt16(address2.IsNotStructureAddress.Value)
                    .ToString(CultureInfo.InvariantCulture)
                : "0";

            przBuff.Zaddr = string.Format("{0}{1}", args, s);

            sessionAtl.Save(przBuff);

            log.Reccount++;
            logger.Trace(przBuff);
            return(przBuff);
        }
コード例 #5
0
        /// <summary>
        /// The add criteria data.
        /// </summary>
        /// <param name="criteria">
        /// The criteria.
        /// </param>
        /// <param name="deatachQuery">
        /// The deatach query.
        /// </param>
        /// <param name="dpersonDatum">
        /// The dperson datum.
        /// </param>
        /// <param name="ddocument">
        /// The ddocument.
        /// </param>
        /// <param name="dmedicalInsurance">
        /// The dmedical Insurance.
        /// </param>
        /// <param name="emptyCriteria">
        /// The empty Criteria.
        /// </param>
        private void AddCriteriaData(
            SearchStatementCriteria criteria,
            QueryOver <Statement, Statement> deatachQuery,
            InsuredPersonDatum dpersonDatum,
            Document ddocument,
            MedicalInsurance dmedicalInsurance,
            bool emptyCriteria)
        {
            // Номер ВС
            if (!string.IsNullOrEmpty(criteria.CertificateNumber))
            {
                emptyCriteria = false;
                deatachQuery.Where(x => dmedicalInsurance.PolisNumber == criteria.CertificateNumber)
                .And(x => dmedicalInsurance.PolisType.Id == PolisType.В);
            }

            // Имя
            if (!string.IsNullOrEmpty(criteria.FirstName))
            {
                emptyCriteria = false;
                deatachQuery.Where(x => dpersonDatum.FirstName == criteria.FirstName.Trim());
            }

            // Фамилия
            if (!string.IsNullOrEmpty(criteria.LastName))
            {
                emptyCriteria = false;
                deatachQuery.Where(x => dpersonDatum.LastName == criteria.LastName.Trim());
            }

            // Отчество
            if (!string.IsNullOrEmpty(criteria.MiddleName))
            {
                emptyCriteria = false;
                deatachQuery.Where(x => dpersonDatum.MiddleName == criteria.MiddleName.Trim());
            }

            // СНИЛС
            if (!string.IsNullOrEmpty(criteria.SNILS))
            {
                emptyCriteria = false;
                deatachQuery.Where(x => dpersonDatum.Snils == SnilsChecker.SsToShort(criteria.SNILS));
            }

            // Тип документа
            if (criteria.DocumentTypeId > 0 &&
                (!string.IsNullOrEmpty(criteria.DocumentSeries) || !string.IsNullOrEmpty(criteria.DocumentNumber)))
            {
                emptyCriteria = false;
                deatachQuery.Where(x => ddocument.DocumentType.Id == criteria.DocumentTypeId);
            }

            // Серия документа
            if (!string.IsNullOrEmpty(criteria.DocumentSeries))
            {
                emptyCriteria = false;
                deatachQuery.Where(x => ddocument.Series == criteria.DocumentSeries);
            }

            // Номер документа
            if (!string.IsNullOrEmpty(criteria.DocumentNumber))
            {
                emptyCriteria = false;
                deatachQuery.Where(x => ddocument.Number == criteria.DocumentNumber);
            }

            // Номер документа
            if (!string.IsNullOrEmpty(criteria.BirthPlace))
            {
                emptyCriteria = false;
                deatachQuery.Where(x => dpersonDatum.Birthplace == criteria.BirthPlace.Trim());
            }

            // Номер полиса
            if (!string.IsNullOrEmpty(criteria.PolicyNumber))
            {
                emptyCriteria = false;

                // deatachQuery.Where(x => x.NumberPolicy == criteria.PolicyNumber.Trim());
                deatachQuery.Where(x => dmedicalInsurance.Enp == criteria.PolicyNumber.Trim())
                .And(x => dmedicalInsurance.PolisType.Id != PolisType.В);
            }

            // Дата рождения
            if (criteria.BirthDate.HasValue)
            {
                emptyCriteria = false;
                deatachQuery.Where(x => dpersonDatum.Birthday == criteria.BirthDate.Value);
            }

            if (!string.IsNullOrEmpty(criteria.Error))
            {
                emptyCriteria = false;
                Error error = null;
                deatachQuery.JoinAlias(x => x.Errors, () => error).Where(x => error.Message1 == criteria.Error);
            }

            // если не сработал ни один критерий то осталяем выборку пустой
            if (emptyCriteria)
            {
                throw new SetParameterSearchException();
            }
        }
コード例 #6
0
        /// <summary>
        /// Возвращает данные застрахованного лица
        /// </summary>
        /// <param name="person">
        /// The person.
        /// </param>
        /// <param name="statement">
        /// The statement.
        /// </param>
        protected virtual void FillInsuredPersonData(PersonType person, Statement statement)
        {
            if (person == null)
            {
                statement.InsuredPersonData = null;
                return;
            }

            var conceptManager = ObjectFactory.GetInstance <IConceptCacheManager>();

            // Данные о застрахованном лице
            var insuredPersonData = statement.InsuredPersonData ?? new InsuredPersonDatum();

            // ФИО
            insuredPersonData.LastName   = person.FAM;
            insuredPersonData.FirstName  = person.IM;
            insuredPersonData.MiddleName = person.OT;

            // Пол
            insuredPersonData.Gender = conceptManager.GetBy(x => x.Code == person.W && x.Oid.Id == Oid.Пол).FirstOrDefault();

            // ДР
            DateTime birthday;

            if (DateTime.TryParse(person.DR, out birthday))
            {
                insuredPersonData.Birthday = birthday;
            }
            else
            {
                insuredPersonData.Birthday = null;
            }

            // Место рождения
            insuredPersonData.Birthplace = person.MR;

            // Гражданство, без гражданства, беженец
            if (!string.IsNullOrEmpty(person.C_OKSM))
            {
                if (person.C_OKSM == "Б/Г")
                {
                    insuredPersonData.IsNotCitizenship = true;
                }
                else
                {
                    insuredPersonData.Citizenship =
                        conceptManager.GetBy(x => x.Code == person.C_OKSM && x.Oid.Id == Oid.Страна).FirstOrDefault();
                }
            }
            else
            {
                insuredPersonData.IsNotCitizenship = false;
                insuredPersonData.Citizenship      = null;
            }

            // Категория
            if (!string.IsNullOrEmpty(person.KATEG))
            {
                insuredPersonData.Category =
                    conceptManager.GetBy(x => x.Code == person.KATEG && x.Oid.Id == Oid.Категориязастрахованноголица)
                    .FirstOrDefault();
            }

            // СНИЛС
            if (!string.IsNullOrEmpty(person.SS))
            {
                insuredPersonData.Snils = SnilsChecker.SsToShort(person.SS);
            }
            else
            {
                insuredPersonData.Snils = null;
            }

            statement.InsuredPersonData = insuredPersonData;
        }
コード例 #7
0
        public void CheckSnils()
        {
            var r = SnilsChecker.CheckIdentifier("03596739300");

            Assert.AreEqual(true, r);
        }
コード例 #8
0
        public void CheckBadSnils()
        {
            var r = SnilsChecker.CheckIdentifier("03596739301");

            Assert.AreEqual(false, r);
        }
コード例 #9
0
        /// <summary>
        /// The get person.
        /// </summary>
        /// <param name="statement">
        /// The statement.
        /// </param>
        /// <returns>
        /// The <see cref="PersonType"/> .
        /// </returns>
        protected virtual PersonType GetPerson(Statement statement)
        {
            var conceptManager    = ObjectFactory.GetInstance <IConceptCacheManager>();
            var deadManager       = ObjectFactory.GetInstance <IDeadInfoManager>();
            var insuredPersonData = statement.InsuredPersonData;
            var person            = new PersonType();

            // ФИО
            person.FAM = insuredPersonData.LastName;
            person.IM  = insuredPersonData.FirstName;
            person.OT  = insuredPersonData.MiddleName;

            // Пол
            person.W = conceptManager.Unproxy(insuredPersonData.Gender).Code;

            // ДР
            if (insuredPersonData.Birthday.HasValue)
            {
                person.DR = insuredPersonData.Birthday.Value.ToShortDateString();
            }

            // Место рождения
            person.MR = insuredPersonData.Birthplace;

            // Гражданство, без гражданства, беженец
            person.C_OKSM = !insuredPersonData.IsNotCitizenship
                        ? conceptManager.Unproxy(insuredPersonData.Citizenship).Code
                        : "Б/Г";

            // Категория
            person.KATEG = insuredPersonData.Category != null?conceptManager.Unproxy(insuredPersonData.Category).Code : null;

            person.SS = !string.IsNullOrEmpty(insuredPersonData.Snils)
                    ? SnilsChecker.SsToLong(statement.InsuredPersonData.Snils)
                    : null;

            // Контактная информация
            if (statement.ContactInfo != null)
            {
                person.PHONE      = statement.ContactInfo.WorkPhone;
                person.PHONE_WORK = statement.ContactInfo.WorkPhone;
                person.EMAIL      = statement.ContactInfo.Email;
            }

            // Информация о представителе
            if (statement.Representative != null)
            {
                var repr = statement.Representative;
                person.FIOPR   = string.Format("{0} {1} {2}", repr.LastName, repr.FirstName, repr.MiddleName);
                person.CONTACT = string.Format("{0};{1}", repr.HomePhone, repr.WorkPhone);
            }

            // Дата смерти
            if (statement.InsuredPerson.DeadInfo != null)
            {
                person.DDEATH = deadManager.GetById(statement.InsuredPerson.DeadInfo.Id).DateDead.ToShortDateString();
            }

            // Код надёжности идентификации
            person.DOST = GetDost(statement);

            // Представитель
            person.PR = GetAssignee(statement.Representative);

            return(person);
        }
コード例 #10
0
ファイル: Step2.ascx.cs プロジェクト: syurov/rt.srz
        /// <summary>
        /// Переносит данные из объекта в элементы на форме
        /// </summary>
        /// <param name="statement">
        /// The statement.
        /// </param>
        public override void MoveDataFromObject2GUI(Statement statement)
        {
            if (statement.InsuredPersonData != null)
            {
                var insuredPersonData = statement.InsuredPersonData;

                // Фамилия
                tbLastName.Text = insuredPersonData.LastName;
                if (string.IsNullOrEmpty(tbLastName.Text) && statement.Id != Guid.Empty)
                {
                    chbIsLastNameAbsent.Checked = true;
                    ChbIsLastNameAbsentCheckedChanged(null, null);
                }

                // Имя
                tbFirstName.Text = insuredPersonData.FirstName;
                if (string.IsNullOrEmpty(tbFirstName.Text) && statement.Id != Guid.Empty)
                {
                    chbIsFirstNameAbsent.Checked = true;
                    ChbIsFirstNameAbsentCheckedChanged(null, null);
                }

                // Отчество
                tbMiddleName.Text = insuredPersonData.MiddleName;
                if (string.IsNullOrEmpty(tbMiddleName.Text) && statement.Id != Guid.Empty)
                {
                    chbIsMiddleNameAbsent.Checked = true;
                    ChbIsMiddleNameAbsentCheckedChanged(null, null);
                }

                // Пол
                if (insuredPersonData.Gender != null)
                {
                    ddlGender.SelectedValue = insuredPersonData.Gender.Id.ToString(CultureInfo.InvariantCulture);
                }

                // Несуществующая дата рождения в документе УДЛ
                if (insuredPersonData.IsIncorrectDate != null)
                {
                    chBIsIncorrectDate.Checked = (bool)insuredPersonData.IsIncorrectDate;
                }

                // Дата рождения
                switch (insuredPersonData.BirthdayType)
                {
                case (int)BirthdayType.Full:
                {
                    if (insuredPersonData.Birthday != null)
                    {
                        tbBirthDate.Text = insuredPersonData.Birthday.Value.ToShortDateString();
                    }

                    rbBirthDate.Checked  = true;
                    rbBirthMonth.Checked = false;
                    rbBirthYear.Checked  = false;
                    RbBirthDateCheckedChanged(null, null);
                }

                break;

                case (int)BirthdayType.MonthAndYear:
                {
                    if (insuredPersonData.Birthday != null)
                    {
                        tbBirthMonth.Text = insuredPersonData.Birthday.Value.ToString("MMMM yyyy");
                    }

                    rbBirthDate.Checked  = false;
                    rbBirthMonth.Checked = true;
                    rbBirthYear.Checked  = false;
                    RbBirthMonthCheckedChanged(null, null);
                }

                break;

                case (int)BirthdayType.Year:
                {
                    if (insuredPersonData.Birthday != null)
                    {
                        tbBirthYear.Text = insuredPersonData.Birthday.Value.ToString("yyyy");
                    }

                    rbBirthDate.Checked  = false;
                    rbBirthMonth.Checked = false;
                    rbBirthYear.Checked  = true;
                    RbBirthYearCheckedChanged(null, null);
                }

                break;
                }

                // Место рождения
                if (insuredPersonData.OldCountry != null)
                {
                    ddlBirthPlace.SelectedValue = insuredPersonData.OldCountry.Id.ToString(CultureInfo.InvariantCulture);
                }

                tbBirthPlace.Text = insuredPersonData.Birthplace;

                // Не специалист...
                if (!insuredPersonData.IsNotGuru != null)
                {
                    chBIsNotGuru.Checked = (bool)insuredPersonData.IsNotGuru;
                }

                // СНИЛС
                tbSnils.Text = insuredPersonData.Snils;

                // Проверяем корректность снилса
                chbNotCheckDigitsSnils.Checked = chbNotCheckDigitsSnils.Visible = !string.IsNullOrEmpty(insuredPersonData.Snils) && !SnilsChecker.CheckIdentifier(insuredPersonData.Snils);


                // Без гражданства
                chbWithoutCitizenship.Checked = insuredPersonData.IsNotCitizenship;
                ChbWithoutCitizenshipCheckedChanged(null, null);

                // Беженец
                chbIsRefugee.Checked = insuredPersonData.IsRefugee;
                ChbIsRefugeeCheckedChanged(null, null);

                // Гражданство
                if (insuredPersonData.Citizenship != null)
                {
                    ddlCitizenship.SelectedValue = insuredPersonData.Citizenship.Id.ToString(CultureInfo.InvariantCulture);
                }

                // Категория
                UpdateCategory();
                if (insuredPersonData.Category != null)
                {
                    ddlCategory.SelectedValue = insuredPersonData.Category.Id.ToString(CultureInfo.InvariantCulture);
                    hfSelectedCategory.Value  = ddlCategory.SelectedValue;

                    SetVisibleDocumentResidency(CategoryPerson.IsDocumentResidency(insuredPersonData.Category.Id));
                }
                else
                {
                    SetVisibleDocumentResidency(false);
                }
            }

            UpdateDocTypeUdl();
            if (statement.DocumentUdl != null)
            {
                // Вид документа
                if (statement.DocumentUdl.DocumentType != null)
                {
                    documentUDL.DocumentType = statement.DocumentUdl.DocumentType.Id;
                }

                // Серия
                documentUDL.DocumentSeries = statement.DocumentUdl.Series;

                // Номер
                documentUDL.DocumentNumber = statement.DocumentUdl.Number;

                // Орган
                documentUDL.DocumentIssuingAuthority = statement.DocumentUdl.IssuingAuthority;

                // Дата выдачи
                documentUDL.DocumentIssueDate = statement.DocumentUdl.DateIssue;
                documentUDL.DocumentExpDate   = statement.DocumentUdl.DateExp;
            }

            // Документ подтвержающий право проживания
            UpdateDocTypeResidency();
            if (statement.ResidencyDocument != null)
            {
                // Вид документа
                if (statement.ResidencyDocument.DocumentType != null)
                {
                    documentResidency.DocumentType = statement.ResidencyDocument.DocumentType.Id;
                }

                // Серия
                documentResidency.DocumentSeries = statement.ResidencyDocument.Series;

                // Номер
                documentResidency.DocumentNumber = statement.ResidencyDocument.Number;

                // Орган
                documentResidency.DocumentIssuingAuthority = statement.ResidencyDocument.IssuingAuthority;

                // Дата выдачи
                documentResidency.DocumentIssueDate = statement.ResidencyDocument.DateIssue;
                documentResidency.DocumentExpDate   = statement.ResidencyDocument.DateExp;
            }

            #endregion
        }
コード例 #11
0
ファイル: Step2.ascx.cs プロジェクト: syurov/rt.srz
        /// <summary>
        /// Переносит данные из элементов на форме в объект
        /// </summary>
        /// <param name="statement">
        /// The statement.
        /// </param>
        /// </summary>
        /// <param name="setCurrentStatement">
        /// Обновлять ли свойство CurrentStatement после присвоения заявлению данных из дизайна
        /// </param>
        public override void MoveDataFromGui2Object(ref Statement statement, bool setCurrentStatement = true)
        {
            var insuredPersonData = statement.InsuredPersonData ?? new InsuredPersonDatum();

            // Фамилия
            insuredPersonData.LastName = tbLastName.Text;

            // Имя
            insuredPersonData.FirstName = tbFirstName.Text;

            // Отчество
            insuredPersonData.MiddleName = tbMiddleName.Text;

            // Пол
            var gender = int.Parse(ddlGender.SelectedValue);

            if (gender >= 0)
            {
                insuredPersonData.Gender = regulatoryService.GetConcept(gender);
            }

            // Несуществующая дата рождения в документе УДЛ
            insuredPersonData.IsIncorrectDate = chBIsIncorrectDate.Checked;

            // Тип даты рождения
            insuredPersonData.BirthdayType = (int?)BirthdayType;

            // Дата рождения
            if (BirthDate.HasValue)
            {
                insuredPersonData.Birthday = BirthDate.Value;
            }

            // Место рождения
            var birthPlaceCountry = int.Parse(ddlBirthPlace.SelectedValue);

            if (birthPlaceCountry >= 0)
            {
                insuredPersonData.OldCountry = regulatoryService.GetConcept(birthPlaceCountry);
            }

            insuredPersonData.Birthplace = tbBirthPlace.Text;

            // Категория
            var category = int.Parse(ddlCategory.SelectedValue);

            if (category >= 0)
            {
                insuredPersonData.Category = regulatoryService.GetConcept(category);
            }

            // Не специалист...
            insuredPersonData.IsNotGuru = chBIsNotGuru.Checked;

            // СНИЛС
            var ss = SnilsChecker.SsToShort(tbSnils.Text.Replace("_", string.Empty)).Trim();

            insuredPersonData.Snils               = !string.IsNullOrEmpty(ss) ? ss : null;
            insuredPersonData.NotCheckSnils       = chbNotCheckDigitsSnils.Checked;
            insuredPersonData.NotCheckExistsSnils = chbNotCheckExistsSnils.Checked;

            // Гражданство
            var citizenship = int.Parse(ddlCitizenship.SelectedValue);

            if (citizenship >= 0)
            {
                insuredPersonData.Citizenship = regulatoryService.GetConcept(citizenship);
            }
            else
            {
                insuredPersonData.Citizenship = null;
            }

            // Без гражданства
            insuredPersonData.IsNotCitizenship = chbWithoutCitizenship.Checked;

            // Беженец
            insuredPersonData.IsRefugee = chbIsRefugee.Checked;

            statement.InsuredPersonData = insuredPersonData;

            var document = statement.DocumentUdl ?? new Document();

            // Вид документа УДЛ
            if (documentUDL.DocumentType >= 0)
            {
                document.DocumentType = regulatoryService.GetConcept(documentUDL.DocumentType);
            }

            // Серия
            document.Series = documentUDL.DocumentSeries;

            // Номер
            document.Number = documentUDL.DocumentNumber;

            // Номер
            document.IssuingAuthority = documentUDL.DocumentIssuingAuthority;

            // Дата выдачи
            document.DateIssue = documentUDL.DocumentIssueDate;
            document.DateExp   = documentUDL.DocumentExpDate;

            // Признак валидности документа по дублю
            document.ExistDocument = documentUDL.ValidDocument;

            statement.DocumentUdl = document;

            // Документ подтвержающий право проживания
            if (statement.InsuredPersonData.Category != null && CategoryPerson.IsDocumentResidency(statement.InsuredPersonData.Category.Id) && documentResidency.DocumentTypeInHf >= 0)
            {
                var residencyDocument = statement.ResidencyDocument ?? new Document();

                residencyDocument.DocumentType = regulatoryService.GetConcept(documentResidency.DocumentTypeInHf);


                // Серия
                residencyDocument.Series = documentResidency.DocumentSeries;

                // Номер
                residencyDocument.Number = documentResidency.DocumentNumber;

                // Номер
                residencyDocument.IssuingAuthority = documentResidency.DocumentIssuingAuthority;

                // Дата выдачи
                residencyDocument.DateIssue = documentResidency.DocumentIssueDate;
                residencyDocument.DateExp   = documentResidency.DocumentExpDate;

                // Признак валидности документа по дублю
                residencyDocument.ExistDocument = documentResidency.ValidDocument;

                statement.ResidencyDocument = residencyDocument;
            }
            else
            {
                statement.ResidencyDocument = null;
            }

            statementService.TrimStatementData(statement);

            // сохранение изменений в сессию
            if (setCurrentStatement)
            {
                CurrentStatement = statement;
            }
        }