public ProductionOrderExtraExpensesSheetPayment(ProductionOrderExtraExpensesSheet extraExpensesSheet, string paymentDocumentNumber, DateTime date, decimal sumInCurrency,
                                                        CurrencyRate currencyRate, ProductionOrderPaymentForm form) : base(paymentDocumentNumber, date, sumInCurrency, currencyRate, form,
                                                                                                                           ProductionOrderPaymentType.ProductionOrderExtraExpensesSheetPayment)
        {
            ValidationUtils.NotNull(extraExpensesSheet, "Не указан лист дополнительных расходов.");
            ExtraExpensesSheet = extraExpensesSheet;
            ExtraExpensesSheet.AddPayment(this);

            ProductionOrder = ExtraExpensesSheet.ProductionOrder;
            ProductionOrder.AddPayment(this);

            ValidationUtils.Assert(!(currencyRate != null && extraExpensesSheet.Currency != currencyRate.Currency), "Курс не соответствует валюте листа дополнительных расходов.");
        }
 /// <summary>
 /// Удаление листа дополнительных расходов
 /// </summary>
 /// <param name="extraExpensesSheet">Лист дополнительных расходов</param>
 /// <param name="currentDateTime">Текущее время</param>
 public virtual void DeleteExtraExpensesSheet(ProductionOrderExtraExpensesSheet extraExpensesSheet, DateTime currentDateTime)
 {
     extraExpensesSheet.DeletionDate = currentDateTime;
     extraExpensesSheets.Remove(extraExpensesSheet);
 }
 /// <summary>
 /// Добавление листа дополнительных расходов
 /// </summary>
 /// <param name="extraExpensesSheet">Лист дополнительных расходов</param>
 public virtual void AddExtraExpensesSheet(ProductionOrderExtraExpensesSheet extraExpensesSheet)
 {
     extraExpensesSheets.Add(extraExpensesSheet);
     extraExpensesSheet.ProductionOrder = this;
 }