/// <summary> /// Удаление позиции из накладной /// </summary> public virtual void DeleteRow(ExpenditureWaybillRow row) { if (IsAccepted) { throw new Exception(String.Format("Невозможно удалить позицию из накладной со статусом «{0}».", State.GetDisplayName())); } if (!rows.Contains(row)) { throw new Exception("Позиция накладной не найдена. Возможно, она была удалена."); } rows.Remove(row); row.DeletionDate = DateTime.Now; }
/// <summary> /// Добавление позиции в накладную /// </summary> public virtual void AddRow(ExpenditureWaybillRow row) { if (IsAccepted) { throw new Exception(String.Format("Невозможно добавить позицию в накладную со статусом «{0}».", State.GetDisplayName())); } if (Rows.Any(x => ((ExpenditureWaybillRow)x).ReceiptWaybillRow.Id == row.ReceiptWaybillRow.Id)) { throw new Exception("Позиция накладной по данной партии и товару уже добавлена."); } rows.Add(row); row.ExpenditureWaybill = this; }