コード例 #1
0
        /// <summary>
        /// Удаление позиции из накладной
        /// </summary>
        public virtual void DeleteRow(ReturnFromClientWaybillRow row)
        {
            row.CheckPossibilityToDelete();

            rows.Remove(row);
            row.DeletionDate = DateTime.Now;
        }
コード例 #2
0
        /// <summary>
        /// Добавление позиции в накладную
        /// </summary>
        public virtual void AddRow(ReturnFromClientWaybillRow row)
        {
            ValidationUtils.Assert(IsDraft, String.Format("Невозможно добавить позицию в накладную со статусом «{0}».", State.GetDisplayName()));
            ValidationUtils.NotNull(row.SaleWaybillRow.SaleWaybill, "Невозможно добавить позицию со ссылкой на позицию накладной реализации без указанной реализации.");
            ValidationUtils.Assert(row.SaleWaybillRow.SaleWaybill.Sender == Recipient, "Организация-приемщик и организация-продавец товара должны совпадать.");
            ValidationUtils.Assert(!Rows.Any(x => x.SaleWaybillRow.Id == row.SaleWaybillRow.Id), "Позиция накладной по данной позиции накладной реализации уже добавлена.");
            ValidationUtils.Assert(row.SaleWaybillRow.SaleWaybill.Team == Team, "Команда накладной возврата должна совпадать с командой накладной реализации.");

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