Advertisement
yambroskin

Сервис заполнения контрагента

Apr 16th, 2019
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.71 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using EleWise.ELMA.CRM.Models;
  4. using Yambr.Dadata.Models;
  5.  
  6. namespace Yambr.Dadata.Services
  7. {
  8.     /// <summary>
  9.     /// Сервис заполнения контрагента
  10.     /// </summary>
  11.     public interface IContractorSuggestionService
  12.     {
  13.         /// <summary>
  14.         /// Выбрать контрагента из подсказок
  15.         /// </summary>
  16.         /// <param name="suggestPartyResponse">результат подсказок</param>
  17.         /// <returns>структурированные данные контрагента</returns>
  18.         SuggestPartyResponse.Suggestion SelectSuggestion(SuggestPartyResponse suggestPartyResponse);
  19.         /// <summary>
  20.         /// Выбрать контрагента из подсказок
  21.         /// </summary>
  22.         /// <param name="suggestions">список подсказок</param>
  23.         /// <returns>структурированные данные контрагента</returns>
  24.         SuggestPartyResponse.Suggestion SelectSuggestion(IEnumerable<SuggestPartyResponse.Suggestion> suggestions);
  25.         /// <summary>
  26.         /// Получить уникальный идентификатор контрагента на основе
  27.         /// структурированных данных контрагента
  28.         /// </summary>
  29.         /// <param name="suggestion">структурированные данные подсказки контрагента</param>
  30.         /// <returns>Уникальный идентификатор (Guid)</returns>
  31.         Guid GetContractorDetermenisticGuid(SuggestPartyResponse.Suggestion suggestion);
  32.         /// <summary>
  33.         /// Получить уникальный идентификатор контрагента на основе
  34.         /// структурированных данных контрагента
  35.         /// </summary>
  36.         /// <param name="partyData">структурированные данные контрагента</param>
  37.         /// <returns>Уникальный идентификатор (Guid)</returns>
  38.         Guid GetContractorDetermenisticGuid(PartyData partyData);
  39.         /// <summary>
  40.         /// Получить уникальный идентификатор контрагента на основе
  41.         /// структурированных данных юридического лица
  42.         /// </summary>
  43.         /// <param name="partyData">структурированные данные контрагента</param>
  44.         /// <returns>Уникальный идентификатор (Guid)</returns>
  45.         Guid GetContractorLegalDetermenisticGuid(PartyData partyData);
  46.         /// <summary>
  47.         /// Получить уникальный идентификатор контрагента на основе
  48.         /// структурированных данных индивидуального предпринимателя
  49.         /// </summary>
  50.         /// <param name="partyData">структурированные данные контрагента</param>
  51.         /// <returns>Уникальный идентификатор (Guid)</returns>
  52.         Guid GetContractorIndividualDetermenisticGuid(PartyData partyData);
  53.  
  54.         /// <summary>
  55.         /// Получить уникальный идентификатор контрагента на основе
  56.         /// структурированных данных контрагента
  57.         /// </summary>
  58.         /// <param name="contractor">контрагент </param>
  59.         /// <returns>Уникальный идентификатор (Guid)</returns>
  60.         Guid GetContractorDetermenisticGuid(IContractor contractor);
  61.         /// <summary>
  62.         /// Получить уникальный идентификатор контрагента на основе
  63.         /// структурированных данных юридического лица
  64.         /// </summary>
  65.         /// <param name="contractorLegal">контрагент юридическое лицо</param>
  66.         /// <returns>Уникальный идентификатор (Guid)</returns>
  67.         Guid GetContractorLegalDetermenisticGuid(IContractorLegal contractorLegal);
  68.         /// <summary>
  69.         /// Получить уникальный идентификатор контрагента на основе
  70.         /// структурированных данных индивидуального предпринимателя
  71.         /// </summary>
  72.         /// <param name="contractorIndividual">контрагент физ лицо</param>
  73.         /// <returns>Уникальный идентификатор (Guid)</returns>
  74.         Guid GetContractorIndividualDetermenisticGuid(IContractorIndividual contractorIndividual);
  75.         /// <summary>
  76.         /// Найти в базе данных контрагента на основе
  77.         /// структурированных данных контрагента
  78.         /// </summary>
  79.         /// <param name="suggestion">структурированные данные контрагента</param>
  80.         /// <returns>Контрагент</returns>
  81.         IContractor FindContractorBySuggestion(SuggestPartyResponse.Suggestion suggestion);
  82.         /// <summary>
  83.         /// Заполнить контрагента по подсказке
  84.         /// </summary>
  85.         /// <param name="contractor">контрагент</param>
  86.         /// <param name="suggestion">структурированные данные контрагента</param>
  87.         void FillContractor(IContractor contractor, SuggestPartyResponse.Suggestion suggestion);
  88.         /// <summary>
  89.         /// Заполнить юридическое лицо по подсказке
  90.         /// </summary>
  91.         /// <param name="contractorLegal">юридическое лицо</param>
  92.         /// <param name="suggestion">структурированные данные контрагента</param>
  93.         void FillContractorLegal(IContractorLegal contractorLegal, SuggestPartyResponse.Suggestion suggestion);
  94.         /// <summary>
  95.         /// Заполнить физическое лицо (ИП) по подсказке
  96.         /// </summary>
  97.         /// <param name="contractorIndividual">контрагент</param>
  98.         /// <param name="suggestion">структурированные данные контрагента</param>
  99.         void FillContractorIndividual(IContractorIndividual contractorIndividual, SuggestPartyResponse.Suggestion suggestion);
  100.         /// <summary>
  101.         /// Создать контрагента на основе подсказки
  102.         /// </summary>
  103.         /// <param name="suggestion"></param>
  104.         /// <returns></returns>
  105.         IContractor CreateContractor(SuggestPartyResponse.Suggestion suggestion);
  106.  
  107.         /// <summary>
  108.         /// Обновить контрагента на основе подсказки
  109.         /// </summary>
  110.         /// <param name="suggestion"></param>
  111.         /// <returns></returns>
  112.         IContractor UpdateContractor(SuggestPartyResponse.Suggestion suggestion);
  113.  
  114.         /// <summary>
  115.         /// Обновить или создать контрагента на основе подсказки
  116.         /// </summary>
  117.         /// <param name="suggestion"></param>
  118.         /// <returns></returns>
  119.         IContractor UpdateOrCreateContractor(SuggestPartyResponse.Suggestion suggestion);
  120.  
  121.         /// <summary>
  122.         /// Создать физ. лицо на основе подсказки ФИО
  123.         /// </summary>
  124.         /// <param name="suggestion"></param>
  125.         /// <returns>Физическое лицо</returns>
  126.         IContractorIndividual CreateContractor(SuggestFioResponse.Suggestion suggestion);
  127.  
  128.         /// <summary>
  129.         /// Заполнить физ. лицо на основе подсказки ФИО
  130.         /// </summary>
  131.         /// <param name="contractorIndividual"></param>
  132.         /// <param name="suggestion"></param>
  133.         /// <returns>Физическое лицо</returns>
  134.         IContractorIndividual FillContractor(IContractorIndividual contractorIndividual, SuggestFioResponse.Suggestion suggestion);
  135.  
  136.         /// <summary>
  137.         /// Найти контрагента по уникальному значению поля UidEgrul
  138.         /// </summary>
  139.         /// <param name="uidEgrul"></param>
  140.         /// <returns></returns>
  141.         IContractor FindContractorByDetermenisticGuid(Guid uidEgrul);
  142.         /// <summary>
  143.         /// Найти контрагентов по уникальному значению поля UidEgrul
  144.         /// * в базе должен быть один - если больше то плохо
  145.         /// </summary>
  146.         /// <param name="uidEgrul"></param>
  147.         /// <returns></returns>
  148.         IEnumerable<IContractor> FindContractorsByDetermenisticGuid(Guid uidEgrul);
  149.  
  150.         /// <summary>
  151.         /// Найти контрагентов по уникальному значению поля UidEgrul
  152.         /// если указано исключение - вернет всех кроме него
  153.         /// </summary>
  154.         /// <param name="uidEgrul"></param>
  155.         /// <param name="excludeContractor">Не включая контрагента</param>
  156.         /// <returns></returns>
  157.         IEnumerable<IContractor> FindContractorsByDetermenisticGuid(Guid uidEgrul, IContractor excludeContractor);
  158.  
  159.         Guid GetDeterministicGuidBranch(string fullname, string inn, string ogrn);
  160.         Guid GetDeterministicGuidMain(string inn, string ogrn);
  161.         Guid GetDeterministicGuidIndividual(string inn);
  162.  
  163.     }
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement