/// <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(); } }
/// <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); }
/// <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); }
/// <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); }
/// <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(); } }
/// <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; }
public void CheckSnils() { var r = SnilsChecker.CheckIdentifier("03596739300"); Assert.AreEqual(true, r); }
public void CheckBadSnils() { var r = SnilsChecker.CheckIdentifier("03596739301"); Assert.AreEqual(false, r); }
/// <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); }
/// <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 }
/// <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; } }