/// <summary> /// Конструктор для создания оплаты за производство /// </summary> /// <param name="productionOrder">Заказ</param> /// <param name="paymentDocumentNumber">Номер платежного документа</param> /// <param name="date">Дата оплаты</param> /// <param name="sumInCurrency">Сумма оплаты в валюте</param> /// <param name="currencyRate">Курс оплаты</param> /// <param name="form">Форма оплаты</param> public ProductionOrderPayment(ProductionOrder productionOrder, string paymentDocumentNumber, DateTime date, decimal sumInCurrency, CurrencyRate currencyRate, ProductionOrderPaymentForm form) : this(paymentDocumentNumber, date, sumInCurrency, currencyRate, form, ProductionOrderPaymentType.ProductionOrderProductionPayment) { ProductionOrder = productionOrder; ProductionOrder.AddPayment(this); ValidationUtils.Assert(!(currencyRate != null && productionOrder.Currency != currencyRate.Currency), "Курс оплаты не соответствует валюте заказа."); }
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), "Курс не соответствует валюте листа дополнительных расходов."); }
public ProductionOrderTransportSheetPayment(ProductionOrderTransportSheet transportSheet, string paymentDocumentNumber, DateTime date, decimal sumInCurrency, CurrencyRate currencyRate, ProductionOrderPaymentForm form) : base(paymentDocumentNumber, date, sumInCurrency, currencyRate, form, ProductionOrderPaymentType.ProductionOrderTransportSheetPayment) { ValidationUtils.NotNull(transportSheet, "Не указан транспортный лист."); TransportSheet = transportSheet; TransportSheet.AddPayment(this); ProductionOrder = TransportSheet.ProductionOrder; ProductionOrder.AddPayment(this); ValidationUtils.Assert(!(currencyRate != null && transportSheet.Currency != currencyRate.Currency), "Курс не соответствует валюте транспортного листа."); }
/// <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 ProductionOrderCustomsDeclarationPayment(ProductionOrderCustomsDeclaration customsDeclaration, string paymentDocumentNumber, DateTime date, decimal sumInCurrency, CurrencyRate currencyRate, ProductionOrderPaymentForm form) : base(paymentDocumentNumber, date, sumInCurrency, currencyRate, form, ProductionOrderPaymentType.ProductionOrderCustomsDeclarationPayment) { ValidationUtils.NotNull(customsDeclaration, "Не указан таможенный лист."); CustomsDeclaration = customsDeclaration; CustomsDeclaration.AddPayment(this); ProductionOrder = CustomsDeclaration.ProductionOrder; ProductionOrder.AddPayment(this); }