/// <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); }
/// <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); }