Example #1
0
        /// <summary>
        /// Удаление разнесения платежного документа из данной сущности. Вызывается извне.
        /// Удаляет разнесение из коллекций обоих сущностей.
        /// Переопределяет и вызывает соответствующий метод в предке
        /// </summary>
        /// <param name="paymentDistribution"></param>
        public override void RemoveDealPaymentDocumentDistribution(DealPaymentDocumentDistribution dealPaymentDocumentDistribution, bool updateSecondEntity = true)
        {
            ValidationUtils.Assert(dealPaymentDocumentDistribution.Is <DealPaymentDocumentDistributionToDealPaymentDocument>(),
                                   "Неверный тип разнесения платежного документа.");

            ValidationUtils.Assert(concreteDistributions.Contains(dealPaymentDocumentDistribution.As <DealPaymentDocumentDistributionToDealPaymentDocument>()),
                                   "Расшифровка распределения корректировки не связана с данной корректировкой.");
            concreteDistributions.Remove(dealPaymentDocumentDistribution.As <DealPaymentDocumentDistributionToDealPaymentDocument>());
            dealPaymentDocumentDistribution.As <DealPaymentDocumentDistributionToDealPaymentDocument>().DestinationDealPaymentDocument = null;
            DistributedSum    -= dealPaymentDocumentDistribution.Sum;
            IsFullyDistributed = UndistributedSum <= 0;
            ValidationUtils.Assert(UndistributedSum >= 0, "Невозможно распределить сумму, большую суммы корректировки.");

            if (updateSecondEntity)
            {
                dealPaymentDocumentDistribution.RemoveDealPaymentDocumentDistributionFromSource();
            }
        }
Example #2
0
        /// <summary>
        /// Добавление разнесения платежного документа к данной сущности. Вызывается извне.
        /// Добавляет разнесение в коллекции обоих сущностей.
        /// Переопределяет и вызывает соответствующий метод в предке
        /// </summary>
        /// <param name="paymentDistribution">Добавляемое разнесение платежного документа</param>
        public override void AddDealPaymentDocumentDistribution(DealPaymentDocumentDistribution dealPaymentDocumentDistribution, bool updateSecondEntity = true)
        {
            ValidationUtils.Assert(dealPaymentDocumentDistribution.Is <DealPaymentDocumentDistributionToDealPaymentDocument>(),
                                   "Неверный тип разнесения платежного документа.");

            dealPaymentDocumentDistribution.SetOrdinalNumber(Distributions);
            concreteDistributions.Add(dealPaymentDocumentDistribution.As <DealPaymentDocumentDistributionToDealPaymentDocument>());
            DistributedSum    += dealPaymentDocumentDistribution.Sum;
            IsFullyDistributed = UndistributedSum <= 0;
            ValidationUtils.Assert(UndistributedSum >= 0, "Невозможно распределить сумму, большую суммы оплаты.");

            if (updateSecondEntity)
            {
                dealPaymentDocumentDistribution.AddDealPaymentDocumentDistributionToSource();
            }
        }