Beispiel #1
0
        /// <summary>
        /// Смена поставщика
        /// </summary>
        /// <param name="provider">Новый поставщик</param>
        /// <param name="contract">Новый договор</param>
        public virtual void ChangeProvider(Provider provider, ProviderContract contract)
        {
            ValidationUtils.Assert(!IsCreatedFromProductionOrderBatch, "Данный метод не подходит для накладной, созданной по партии заказа.");

            ValidationUtils.NotNull(provider, "Поставщик не указан.");
            ValidationUtils.Assert(contract == null || provider.Contracts.Contains(contract), "Указан договор, не связанный с поставщиком.");

            Provider         = provider;
            ProviderContract = contract;
        }
Beispiel #2
0
        /// <summary>
        /// Убрать связь договора с поставщиком
        /// </summary>
        /// <param name="contract">Договор с поставщиком</param>
        public virtual void RemoveProviderContract(ProviderContract contract)
        {
            if (!contracts.Contains(contract))
            {
                throw new Exception("Данный договор не содержится в списке договоров поставщика. Возможно, он был удален.");
            }

            contracts.Remove(contract);
            if (contract.Contractors.Contains(this))
            {
                contract.RemoveContractor(this);
            }
        }
Beispiel #3
0
        /// <summary>
        /// Связать договор с поставщиком
        /// </summary>
        /// <param name="contract">Договор с поставщиком</param>
        public virtual void AddProviderContract(ProviderContract contract)
        {
            if (contracts.Contains(contract))
            {
                throw new Exception("Данный договор уже содержится в списке договоров поставщика.");
            }

            contracts.Add(contract);
            if (!contract.Contractors.Contains(this))
            {
                contract.AddContractor(this);
            }
        }
Beispiel #4
0
 /// <summary>
 /// Конструктор для обычной приходной накладной (не связанной с партией заказа)
 /// </summary>
 /// <param name="number">Номер</param>
 /// <param name="date">Дата</param>
 /// <param name="receiptStorage">Место хранения</param>
 /// <param name="accountOrganization">Собственная организация</param>
 /// <param name="provider">Поставщик</param>
 /// <param name="pendingSum">Ожидаемая сумма накладной</param>
 /// <param name="pendingDiscountSum">Ожидаемая сумма скидки</param>
 /// <param name="pendingValueAddedTax">Ожидаемая НДС</param>
 /// <param name="providerContract">Договор с поставщиком</param>
 /// <param name="curator">Куратор</param>
 public ReceiptWaybill(string number, DateTime date, Storage receiptStorage, AccountOrganization accountOrganization, Provider provider, decimal pendingSum,
                       decimal pendingDiscountSum, ValueAddedTax pendingValueAddedTax, ProviderContract providerContract, string customsDeclarationNumber, User curator, User createdBy, DateTime creationDate)
     : this(number, date, receiptStorage, accountOrganization, pendingSum, pendingDiscountSum, pendingValueAddedTax, customsDeclarationNumber, curator, createdBy, creationDate)
 {
     ValidationUtils.NotNull(provider, "Необходимо указать поставщика.");
     Provider = provider;
     ValidationUtils.NotNull(providerContract, "Необходимо указать договор.");
     ChangeProvider(provider, providerContract);
 }