Exemplo n.º 1
0
        public List <Sungero.Domain.Shared.IEntity> GetChangedBankAccountsFromSyncDateRemote(List <Guid> entityTypeGuids,
                                                                                             int processedEntitiesCount,
                                                                                             int entitiesCountForProcessing,
                                                                                             string extEntityType,
                                                                                             string systemId)
        {
            using (var session = new Domain.Session())
            {
                var entities = new List <Sungero.Domain.Shared.IEntity>().AsQueryable();

                foreach (var entityTypeGuid in entityTypeGuids)
                {
                    entities = entities.Union(this.GetChangedEntities(session, entityTypeGuid, extEntityType, systemId));
                }
                entities = entities.Where(x => Counterparties.Is(x) &&
                                          Counterparties.As(x).Status == Sungero.Parties.Counterparty.Status.Active &&
                                          Counterparties.As(x).Bank != null &&
                                          !string.IsNullOrEmpty(Counterparties.As(x).Account));

                var entitiesBatch = entities
                                    .Skip(processedEntitiesCount)
                                    .Take(entitiesCountForProcessing)
                                    .ToList();

                return(entitiesBatch);
            }
        }
        public async Task <ActionResult <Counterparties> > PostCounterparties(Counterparties counterparties)
        {
            _context.Counterparties.Add(counterparties);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCounterparties", new { id = counterparties.CounterpartyId }, counterparties));
        }
        public async Task <IActionResult> PutCounterparties(int id, Counterparties counterparties)
        {
            if (id != counterparties.CounterpartyId)
            {
                return(BadRequest());
            }

            _context.Entry(counterparties).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CounterpartiesExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Exemplo n.º 4
0
        public override bool CanAddChildEntity(Sungero.Domain.Client.CanExecuteChildCollectionActionArgs e)
        {
            var root = Counterparties.As(e.RootEntity);

            return((root != null && _all == root.ExchangeBoxes)
        ? false
        : base.CanAddChildEntity(e));
        }
Exemplo n.º 5
0
        public override bool CanDeleteChildEntity(Sungero.Domain.Client.CanExecuteChildCollectionActionArgs e)
        {
            // Дизейбл грида абонентских ящиков.
            var root = Counterparties.As(e.RootEntity);

            return((root != null && _all == root.ExchangeBoxes)
        ? false
        : base.CanDeleteChildEntity(e));
        }
        public void UpdateView()
        {
            var counterparties = _counterpartyRepository.GetEntities();

            Counterparties.Clear();
            foreach (var counterparty in counterparties)
            {
                Counterparties.Add(counterparty);
            }
        }
Exemplo n.º 7
0
        public static List <ICounterparty> GetDuplicateCounterparties(string tin, string trrc, string name, int?excludedCounterpartyId, bool excludeClosed)
        {
            var counterparties = Counterparties.GetAll();

            if (excludedCounterpartyId.HasValue)
            {
                counterparties = counterparties.Where(x => x.Id != excludedCounterpartyId.Value);
            }

            return(GetDuplicateCounterparties(counterparties, tin, trrc, name, excludeClosed));
        }
Exemplo n.º 8
0
        public static string GetEmailByTinTrrc(string tin, string trrc)
        {
            var counterparties = Counterparties.GetAll().Where(c => c.TIN == tin).ToList();

            if (!string.IsNullOrWhiteSpace(trrc))
            {
                counterparties = counterparties.Where(t => Companies.Is(t) && Companies.As(t).TRRC == trrc).ToList();
            }

            var counterparty = counterparties.FirstOrDefault();

            return(counterparty != null ? counterparty.Email : string.Empty);
        }
Exemplo n.º 9
0
        public static List <ICounterparty> GetExchangeCounterparty(Sungero.Company.IBusinessUnit businessUnit)
        {
            // TODO Пока отправляем только тем, с кем установлен обмен.
            var parties = Counterparties.GetAll()
                          .Where(x => x.ExchangeBoxes.Any(b => Equals(b.Status, Sungero.Parties.CounterpartyExchangeBoxes.Status.Active) && b.IsDefault == true))
                          .ToList();

            if (businessUnit != null)
            {
                parties = parties.Where(x => x.ExchangeBoxes.Any(b => Equals(b.Box.BusinessUnit, businessUnit))).ToList();
            }

            return(parties);
        }
Exemplo n.º 10
0
        public static List <ICounterparty> FindCounterparty(string uuid, string tin, string trrc, string sysid)
        {
            // Найти контрагента среди синхронизированных ранее.
            if (!string.IsNullOrWhiteSpace(uuid))
            {
                var linkedIds = Commons.PublicFunctions.Module.GetExternalEntityLinks(uuid, sysid).Select(x => x.EntityId).ToList();
                var result    = Counterparties.GetAll().Where(x => linkedIds.Contains(x.Id));

                if (result.Any())
                {
                    return(result.ToList());
                }
            }

            // Найти контрагентов, удовлетворяющих критериям ИНН/КПП, если не найдено синхронизированных ранее.
            return(GetDuplicateCounterparties(tin, trrc, string.Empty, null, false));
        }
Exemplo n.º 11
0
        public int GetChangedBankAccountsFromSyncDateRemoteCount(List <Guid> entityTypeGuids,
                                                                 string extEntityType,
                                                                 string systemId)
        {
            using (var session = new Domain.Session())
            {
                var totalCount = 0;

                foreach (var entityTypeGuid in entityTypeGuids)
                {
                    var entities = this.GetChangedEntities(session, entityTypeGuid, extEntityType, systemId).ToList();
                    totalCount += entities.Where(x => Counterparties.Is(x) &&
                                                 Counterparties.As(x).Status == Sungero.Parties.Counterparty.Status.Active &&
                                                 Counterparties.As(x).Bank != null &&
                                                 !string.IsNullOrEmpty(Counterparties.As(x).Account))
                                  .Count();
                }
                return(totalCount);
            }
        }
Exemplo n.º 12
0
        public override IQueryable <T> Filtering(IQueryable <T> query, Sungero.Domain.FilteringEventArgs e)
        {
            if (_filter != null)
            {
                if (_filter.Company || _filter.Person || _filter.Bank)
                {
                    query = query.Where(x => (_filter.Company && Companies.Is(x)) ||
                                        (_filter.Person && People.Is(x)) ||
                                        (_filter.Bank && Banks.Is(x)));
                }

                if (_filter.Responsible != null)
                {
                    query = query.Where(x => Counterparties.Is(x) && Equals(_filter.Responsible, Counterparties.As(x).Responsible));
                }
            }

            // Исключение системного контрагента - "По списку рассылки".
            var distributionListCounterparty = Parties.PublicFunctions.Counterparty.Remote.GetDistributionListCounterparty();

            return(query.Where(x => !Equals(x, distributionListCounterparty)));
        }
Exemplo n.º 13
0
 public IQueryable <ICounterparty> CounterpartiesAvailableForExchange()
 {
     return(Counterparties.GetAll(x => x.CanExchange == true));
 }
Exemplo n.º 14
0
 public static ICounterparty FindCounterpartyByOrganizationId(ExchangeCore.IBusinessUnitBox box, string organizationId)
 {
     return(Counterparties.GetAll().Where(c => c.ExchangeBoxes.Any(b => Equals(b.Box, box) && b.OrganizationId == organizationId)).FirstOrDefault());
 }