Esempio n. 1
0
        /// <summary>
        /// Автоматическое разнесение подходящих платежных документов на создаваемую дебетовую корректировку сальдо
        /// </summary>
        /// <param name="dealDebitInitialBalanceCorrection">Дебетовая корректировка сальдо для разнесения на него</param>
        /// <param name="currentDate">Дата операции</param>
        public void DistributeDealDebitInitialBalanceCorrection(DealDebitInitialBalanceCorrection dealDebitInitialBalanceCorrection, DateTime currentDate)
        {
            // получение информации о всех неразнесенных частях оплат по сделке и команде
            var dealPaymentUndistributedPartsInfo = GetTotalDealPaymentUndistributedPartsInfo(dealDebitInitialBalanceCorrection.Deal, dealDebitInitialBalanceCorrection.Team);

            // в данном случае нам не важна последовательность освобождения денег и полное разнесение денег на дебетовую корректировку
            PayDealPaymentDocument(dealPaymentUndistributedPartsInfo, dealDebitInitialBalanceCorrection, dealDebitInitialBalanceCorrection.UndistributedSum, currentDate);
        }
        public void DealPaymentDocumentTest_DealDebitInitialBalanceCorrection_InitialParameters_Must_Be_Set()
        {
            // Act (создаем дебетовую корректировку сальдо)
            var currentDate = DateTime.Now;
            var dealDebitInitialBalanceCorrection = new DealDebitInitialBalanceCorrection(team.Object, user.Object, "Первоначальный долг", new DateTime(2012, 2, 16), 520M, currentDate);

            Assert.AreEqual("Первоначальный долг", dealDebitInitialBalanceCorrection.CorrectionReason);
            Assert.AreEqual(currentDate, dealDebitInitialBalanceCorrection.CreationDate);
            Assert.AreEqual(new DateTime(2012, 2, 16), dealDebitInitialBalanceCorrection.Date);
            Assert.IsNull(dealDebitInitialBalanceCorrection.Deal);
            Assert.IsNull(dealDebitInitialBalanceCorrection.DeletionDate);
            Assert.IsNotNull(dealDebitInitialBalanceCorrection.Distributions);
            Assert.AreEqual(0, dealDebitInitialBalanceCorrection.Distributions.Count());
            Assert.AreEqual(520M, dealDebitInitialBalanceCorrection.Sum);
            Assert.AreEqual(user.Object, dealDebitInitialBalanceCorrection.User);
            Assert.AreEqual(team.Object, dealDebitInitialBalanceCorrection.Team);
        }
 public void Delete(DealDebitInitialBalanceCorrection value)
 {
     CurrentSession.SaveOrUpdate(value);
 }
Esempio n. 4
0
 /// <summary>
 /// Разнести платежный документ на дебетовую корректировку сальдо (заданной наперед суммой).
 /// После разнесения у дебетовой корректировки сальдо может оставаться неоплаченный остаток.
 /// Если до разнесения дебетовой корректировки сальдо не имеет положительного неоплаченного остатка, разнесение платежного документа не будет создано.
 /// При полной оплате дебетовой корректировки сальдо происходит установка признака того, что тот полностью оплачен.
 /// </summary>
 /// <param name="dealPaymentUndistributedPartsInfo">Информация о неразнесенных остатках платежных документов</param>
 /// <param name="dealDebitInitialBalanceCorrection">Дебетовая корректировка сальдо (единственный), на который выполняется разнесение платежного документа</param>
 /// <param name="sumToDistribute">Сумма для разнесения</param>
 /// <param name="currentDate">Дата операции</param>
 private void PayDealDebitInitialBalanceCorrection(List <DealPaymentUndistributedPartInfo> dealPaymentUndistributedPartsInfo, DealDebitInitialBalanceCorrection dealDebitInitialBalanceCorrection,
                                                   decimal sumToDistribute, DateTime currentDate)
 {
     PayDealPaymentDocument(dealPaymentUndistributedPartsInfo, dealDebitInitialBalanceCorrection, sumToDistribute, currentDate);
 }