public int SaveJuridicalCard(PersonCardJuridical card, bool confirmed) { var duplicateNicknames = GetDuplicatesByNickname(card.Person.Nickname, 0); if (duplicateNicknames.Count > 0) { throw new DuplicateNicknameException(duplicateNicknames); } var c = new JuridicalCardForSave() { NewID = 0, WhatDo = Persons.SaveAction.СоздатьЛицо, Check = confirmed, КодЛица = card.PersonID, КодКарточки = card.ID, Кличка = card.Person.Nickname, КодБизнесПроекта = card.Person.BusinessProjectID, КодТерритории = card.Person.TerritoryID, ГосОрганизация = card.Person.IsStateOrganization ? 1 : 0, БИК = card.Person.BIK, ИНН = card.Person.INN, ОГРН = card.Person.OGRN, ОКПО = card.Person.OKPO, КорСчет = card.Person.LoroConto, БИКРКЦ = card.Person.BIKRKC, SWIFT = card.Person.SWIFT, Примечание = card.Person.Comment, Проверено = card.Person.Verified, От = card.From, До = card.To, КодОргПравФормы = card.IncorporationFormID, КраткоеНазваниеРус = card.ShortNameRus, КраткоеНазваниеРусРП = card.ShortNameRusGen, КраткоеНазваниеЛат = card.ShortNameLat, ПолноеНазвание = card.FullName, ОКОНХ = card.OKONH, ОКВЭД = card.OKVED, КПП = card.KPP, КодЖД = card.RwID, АдресЮридический = card.AddressLegal, АдресЮридическийЛат = card.AddressLegalLat }; var issues = SaveJuridical(c); // логика обработки результата работы хранимой процедуры if (issues.Count > 0) { throw new SavePersonException(issues); } return(c.NewID); }
public int TryToSaveJuridical(JuridicalCardForSave card) { var issues = SaveJuridical(card); // логика обработки результата работы хранимой процедуры if (issues.Count > 0) { throw new SavePersonException(issues); } return(card.NewID); }
protected abstract List <SaveIssue> SaveJuridical([Direction.ReturnValue("NewID")] JuridicalCardForSave card);
public ActionResult Save(string control, Requisites model) { string script = String.Empty; RequisitesValidator validator = new RequisitesValidator(); ValidationResult validationResults = validator.Validate(model); if (!validationResults.IsValid) { validationResults.AddToModelState(ModelState, null); } if (!ModelState.IsValid) { return JavaScriptAlert( Kesco.Persons.Web.Localization.Resources.Validation_ErrorDlg_Title, Kesco.Persons.Web.Localization.Resources.Validation_Person_ErrorDlg_Message +"<br clear='all'/><ul>"+ String.Join("\n", GetModelErrorMessages().Select(e => String.Format("<li>{0}</li>", e)) ) +"</ul>"); } // если указан идентификатор лица, то операция - создать/редактировать карточку if (model.PersonID.HasValue && model.PersonID.Value != 0) { Person person = Repository.Persons.GetInstance(model.PersonID.Value); if (person == null) throw new ApplicationException( String.Format(Kesco.Persons.Web.Localization.Resources .ViewModel_Exception_JuridicalPerson_Requisites_PersonNotFound, model.PersonID )); try { var card = new JuridicalCardForSave { NewID = 0, WhatDo = (model.ID != 0) ? SaveAction.РедактироватьКарточку : SaveAction.СоздатьКарточку, //Check = control == "confirmed", // TODO: Переделать Check = (model.OperationTypeId != 0), КодЛица = person.ID, Кличка = person.Nickname ?? String.Empty, КодБизнесПроекта = person.BusinessProjectID, КодТерритории = person.TerritoryID, ГосОрганизация = person.IsStateOrganization ? 1 : 0, БИК = person.BIK ?? String.Empty, ИНН = person.INN ?? String.Empty, ОГРН = person.OGRN ?? String.Empty, ОКПО = person.OKPO ?? String.Empty, КорСчет = person.LoroConto ?? String.Empty, БИКРКЦ = person.BIKRKC ?? String.Empty, SWIFT = person.SWIFT ?? String.Empty, Примечание = person.Comment ?? String.Empty, Проверено = person.Verified, КодКарточки = model.ID, От = model.From ?? new DateTime(1980, 1, 1), До = (model.To ?? new DateTime(2049, 12, 31)).AddDays(1), КраткоеНазваниеЛат = model.ShortNameLat ?? String.Empty, КраткоеНазваниеРус = model.ShortNameRus ?? String.Empty, КраткоеНазваниеРусРП = model.ShortNameRusGenitive ?? String.Empty, КодЖД = model.RwID ?? String.Empty, АдресЮридический = model.AddressLegal ?? String.Empty, АдресЮридическийЛат = model.AddressLegalLat ?? String.Empty, ПолноеНазвание = String.Empty, ОКОНХ = String.Empty, ОКВЭД = String.Empty, КПП = String.Empty }; if (person.TerritoryID == JuridicalCardForSave.Russia) { card.КодОргПравФормы = model.IncorporationFormID; card.ПолноеНазвание = model.FullName ?? String.Empty; card.ОКОНХ = model.OKONH ?? String.Empty; card.ОКВЭД = model.OKVED ?? String.Empty; card.КПП = model.KPP ?? String.Empty; } Repository.Persons.TryToSaveJuridical(card); } catch (SavePersonException ex) { string script2 = String.Format(@"(function() {{ var duplicates = {3}; var callbackUrl = encodeURIComponent('{0}'); var url = '{1}&callbackUrl={{0}}'; url = $.validator.format(url, callbackUrl); openPopupWindow(url, {{ type: 'POST', Duplicates: duplicates }}, function (result) {{ ViewModel.Confirmed(false); if ($.isArray(result)) {{ var person = result[0]; if (person.value == {2}) {{ // если value == PersonID, создаём/сохраняем лицо ViewModel.Confirmed(true); ViewModel.save(); }} else {{ // иначе закрываем и открываем похожее лицо //closeDialogAndReturnValue(JSON.stringify(result)); }} }} }}, 'wnd_Duplicates', 670, 400); }})()", Url.FullPathAction("DialogResult", "Default"), Url.Action("Index", "NaturalDuplicates", new { id = model.PersonID, t = 1 }), model.PersonID, Kesco.Web.Mvc.Json.Serialize( ex.Issues .GroupBy(issue => issue.PersonID) .Select(gr => new { PersonID = gr.Key, Nickname = gr.First().Nickname, Issues = gr.Select(i => new { Field = i.Field, Granted = i.Granted, R = i.R, Value = i.Value }).ToList() }) , true ) ); return JavaScript(script2); } } // иначе вернуть карточку return ReturnDialogValue(model); }