示例#1
0
        /// <summary>
        /// Назначить сделке указанный договор с клиентом.
        /// </summary>
        /// <param name="deal">Сделка.</param>
        /// <param name="contract">Договор с клиентом.</param>
        /// <param name="user">Пользователь, выполняющий операцию.</param>
        public void SetContract(Deal deal, ClientContract contract, User user)
        {
            if (deal.Contract == null)
            {
                CheckPossibilityToAddContract(deal, user);
            }
            else
            {
                CheckPossibilityToChangeContract(deal, user);
            }

            if (deal.Contract != contract)
            {
                CheckForMaxCashPaymentSumExceeding(deal, contract);

                var oldContract = deal.Contract;

                deal.Contract = contract;

                dealRepository.Save(deal);

                if (oldContract != null)
                {
                    if (clientContractRepository.IsUsedBySingleDeal(oldContract, deal)) //коммита еще не было, поэтому в БД у сделки еще старый договор
                    {
                        clientContractRepository.Delete(oldContract);
                    }
                }
            }
        }
示例#2
0
 /// <summary>
 /// Удаление договора с клиентом.
 /// </summary>
 /// <param name="contract">Договор, который нужно удалить.</param>
 public void Delete(ClientContract contract)
 {
     clientContractRepository.Delete(contract);
 }