/// <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; }
/// <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; }