Пример #1
0
        /// <summary>
        /// Удаление позиции из накладной
        /// </summary>
        public virtual void DeleteRow(MovementWaybillRow row)
        {
            ValidationUtils.Assert(!IsAccepted, String.Format("Невозможно удалить позицию из накладной со статусом «{0}».", State.GetDisplayName()));

            ValidationUtils.Assert(!row.AreOutgoingWaybills, "Невозможно удалить позицию, так как по ней уже есть исходящие накладные.");

            rows.Remove(row);
            row.DeletionDate = DateTime.Now;
        }
Пример #2
0
        /// <summary>
        /// Добавление позиции в накладную
        /// </summary>
        public virtual void AddRow(MovementWaybillRow row)
        {
            ValidationUtils.Assert(!IsAccepted, String.Format("Невозможно добавить позицию в накладную со статусом «{0}».", State.GetDisplayName()));

            ValidationUtils.Assert(!Rows.Any(x => x.ReceiptWaybillRow.Id == row.ReceiptWaybillRow.Id), "Позиция накладной по данной партии и товару уже добавлена.");

            ValidationUtils.Assert(row.ValueAddedTax.Value == 0M || Sender != Recipient,
                                   "Организации-отправитель и получатель совпадают. Невозможно установить ненулевой НДС для позиции.");

            rows.Add(row);
            row.MovementWaybill = this;
        }