public ProductionOrderTransportSheet(string forwarderName, ProductionOrderCurrencyDeterminationType currencyDeterminationType,
                                             DateTime requestDate, decimal costInCurrency)
        {
            CreationDate = DateTime.Now;

            ValidationUtils.Assert(costInCurrency > 0, "Стоимость транспортного листа не может быть отрицательной или равной нулю.");
            ValidationUtils.Assert(!String.IsNullOrEmpty(forwarderName), "Экспедитор не указан.");

            CostInCurrency = costInCurrency;
            this.currencyDeterminationType = currencyDeterminationType;
            ForwarderName    = forwarderName;
            this.requestDate = requestDate;
            Comment          = String.Empty;

            payments = new HashedSet <ProductionOrderTransportSheetPayment>();
        }
        public ProductionOrderExtraExpensesSheet(string extraExpensesContractorName, ProductionOrderCurrencyDeterminationType currencyDeterminationType,
                                                 DateTime date, string extraExpensesPurpose, decimal costInCurrency)
        {
            CreationDate = DateTime.Now;

            ValidationUtils.Assert(costInCurrency > 0, "Стоимость листа дополнительных расходов не может быть отрицательной или равной нулю.");
            ValidationUtils.Assert(!String.IsNullOrEmpty(extraExpensesContractorName), "Контрагент не указан.");
            ValidationUtils.Assert(!String.IsNullOrEmpty(extraExpensesPurpose), "Назначение расходов не указано.");

            CostInCurrency = costInCurrency;
            this.currencyDeterminationType = currencyDeterminationType;
            ExtraExpensesContractorName    = extraExpensesContractorName;
            ExtraExpensesPurpose           = extraExpensesPurpose;
            this.date = date;
            Comment   = String.Empty;

            payments = new HashedSet <ProductionOrderExtraExpensesSheetPayment>();
        }