Exemplo n.º 1
0
        /// <summary>
        /// Конструктор, заполняющий базовые поля, для вызова из других конструкторов
        /// </summary>
        /// <param name="paymentDocumentNumber">Номер платежного документа</param>
        /// <param name="date">Дата оплаты</param>
        /// <param name="sumInCurrency">Сумма оплаты в валюте</param>
        /// <param name="currencyRate">Курс оплаты</param>
        /// <param name="form">Форма оплаты</param>
        /// <param name="type">Назначение оплаты</param>
        protected ProductionOrderPayment(string paymentDocumentNumber, DateTime date, decimal sumInCurrency, CurrencyRate currencyRate, ProductionOrderPaymentForm form,
                                         ProductionOrderPaymentType type)
        {
            CreationDate = DateTime.Now;

            ValidationUtils.Assert(date.Date <= DateTime.Now.Date, "Дата оплаты не может быть больше текущей даты.");
            ValidationUtils.Assert(sumInCurrency > 0, "Сумма оплаты должна быть больше нуля.");
            ValidationUtils.NotNull(currencyRate, "Не указан курс валюты.");

            PaymentDocumentNumber = paymentDocumentNumber;
            Date          = date;
            SumInCurrency = sumInCurrency;
            CurrencyRate  = currencyRate;
            Form          = form;
            Type          = type;
        }
        public ProductionOrderPlannedPayment(ProductionOrder productionOrder, DateTime startDate, DateTime endDate, decimal sumInCurrency,
                                             Currency currency, CurrencyRate currencyRate, string purpose, ProductionOrderPaymentType purposeType)
        {
            CreationDate = DateTime.Now;

            payments = new HashedSet <ProductionOrderPayment>();

            ValidationUtils.Assert(sumInCurrency > 0, "Сумма оплаты должна быть больше нуля.");
            ValidationUtils.NotNull(currency, "Не указана валюта.");

            StartDate = startDate;
            EndDate   = endDate;
            CheckDates();

            SumInCurrency = sumInCurrency;
            Currency      = currency;
            CurrencyRate  = currencyRate;
            Purpose       = purpose;
            PaymentType   = purposeType;

            ProductionOrder = productionOrder;
            ProductionOrder.AddPlannedPayment(this);
        }