public async Task <ActionResult <object> > PostUnitGood(UnitGoodObjectModel ajaxUnit) { _logger.LogInformation("Создание единицы измерения. Инициатор: " + _user.FullInfo); string msg; ajaxUnit.Name = ajaxUnit.Name.Trim(); ajaxUnit.Information = ajaxUnit.Information.Trim(); if (!ModelState.IsValid || string.IsNullOrEmpty(ajaxUnit.Name)) { msg = "Ошибка контроля валидности модели"; _logger.LogError(msg); return(new ObjectResult(new ServerActionResult() { Success = false, Info = msg, Status = StylesMessageEnum.danger.ToString(), Tag = ModelState })); } if (await _context.Units.AnyAsync(x => x.Name.ToLower() == ajaxUnit.Name.ToLower())) { msg = "Такое имя уже существует. Придумайте уникальное имя"; _logger.LogError(msg); return(new ObjectResult(new ServerActionResult() { Success = false, Info = msg, Status = StylesMessageEnum.danger.ToString() })); } await _context.Units.AddAsync(ajaxUnit); await _context.SaveChangesAsync(); HttpContext.Response.Cookies.Append("rowsCount", (await _context.Units.CountAsync()).ToString()); msg = $"Номенклатурная группа создана [#{ajaxUnit.Id}]"; _logger.LogInformation(msg); return(new ObjectResult(new ServerActionResult() { Success = true, Info = msg, Status = StylesMessageEnum.success.ToString(), Tag = ajaxUnit.Id })); }
public async Task <ActionResult <object> > DeleteUnitGood(int id) { _logger.LogInformation($"Удаление единицы измерения {id}. Инициатор: " + _user.FullInfo); string msg; UnitGoodObjectModel unit = await _context.Units.FindAsync(id); if (unit == null) { msg = $"Запрашиваемая единица измерения не найдена: id={id}"; _logger.LogError(msg); return(new ObjectResult(new ServerActionResult() { Success = false, Info = msg, Status = StylesMessageEnum.danger.ToString() })); } if (await _context.Goods.AnyAsync(x => x.UnitId == id) || await _context.GoodMovementDocumentRows.AnyAsync(x => x.UnitId == id)) { msg = $"Запрашиваемая единица измерения не может быть удалена (есть ссылки в номенклатуре и/или регистрах): id={id}"; _logger.LogError(msg); return(new ObjectResult(new ServerActionResult() { Success = false, Info = msg, Status = StylesMessageEnum.danger.ToString() })); } _context.Units.Remove(unit); await _context.SaveChangesAsync(); msg = $"Единица измерения удалена: id={id}"; _logger.LogError(msg); return(new ObjectResult(new ServerActionResult() { Success = true, Info = msg, Status = StylesMessageEnum.info.ToString() })); }
public static void Initialize(AppDataBaseContext context) { #region единицы измерения unitsDemo х8 UnitGoodObjectModel[] unitsDemo = new UnitGoodObjectModel[] { new UnitGoodObjectModel { Name = "шт.", Information = "Штука" }, new UnitGoodObjectModel { Name = "м.", Information = "Метр" }, new UnitGoodObjectModel { Name = "гр.", Information = "Грамм" }, new UnitGoodObjectModel { Name = "уп.5шт.", Information = "Упаковка 5 штук" }, new UnitGoodObjectModel { Name = "500гр.", Information = "Фасовка 500гр." }, new UnitGoodObjectModel { Name = "1000гр.", Information = "Фасовка 1000гр." }, new UnitGoodObjectModel { Name = "300гр.", Information = "Фасовка 300гр." }, new UnitGoodObjectModel { Name = "кмпл.", Information = "Комплект" } }; if (!context.Units.Any()) { context.Units.AddRange(unitsDemo); context.SaveChanges(); } #endregion #region группы номенклатуры groupGoodsDemo x3 GroupGoodsObjectModel[] groupGoodsDemo = new GroupGoodsObjectModel[] { new GroupGoodsObjectModel { Name = "Посуда" }, new GroupGoodsObjectModel { Name = "Одежда/Обувь" }, new GroupGoodsObjectModel { Name = "Бакалея" } }; if (!context.GroupsGoods.Any()) { context.GroupsGoods.AddRange(groupGoodsDemo); context.SaveChanges(); } #endregion #region номенклатура goodsDemo x22 GoodObjectModel[] goodsDemo = new GoodObjectModel[] { new GoodObjectModel { Name = "Тарелка", Price = 200, Group = groupGoodsDemo[0], Unit = unitsDemo[3] }, new GoodObjectModel { Name = "Кружка", Price = 0, Group = groupGoodsDemo[0], Unit = unitsDemo[0] }, new GoodObjectModel { Name = "Чайник", Price = 2200, Group = groupGoodsDemo[0], Unit = unitsDemo[0] }, new GoodObjectModel { Name = "Кофта", Price = 3800, Group = groupGoodsDemo[1], Unit = unitsDemo[0] }, new GoodObjectModel { Name = "Шорты", Price = 2500, Group = groupGoodsDemo[1], Unit = unitsDemo[0] }, new GoodObjectModel { Name = "Носки", Price = 0, Group = groupGoodsDemo[1], Unit = unitsDemo[7] }, new GoodObjectModel { Name = "Куртка", Price = 6400, Group = groupGoodsDemo[1], Unit = unitsDemo[0] }, new GoodObjectModel { Name = "Варежки", Price = 1350, Group = groupGoodsDemo[1], Unit = unitsDemo[7] }, new GoodObjectModel { Name = "Лента (отрез)", Price = 50, Group = groupGoodsDemo[1], Unit = unitsDemo[1] }, new GoodObjectModel { Name = "Мука", Price = 45, Group = groupGoodsDemo[2], Unit = unitsDemo[4] }, new GoodObjectModel { Name = "Гречка", Price = 87, Group = groupGoodsDemo[2], Unit = unitsDemo[4] }, new GoodObjectModel { Name = "Овсянка", Price = 64, Group = groupGoodsDemo[2], Unit = unitsDemo[6] }, new GoodObjectModel { Name = "Рис", Price = 0, Group = groupGoodsDemo[2], Unit = unitsDemo[4] }, new GoodObjectModel { Name = "Горох", Price = 134, Group = groupGoodsDemo[2], Unit = unitsDemo[5] }, new GoodObjectModel { Name = "Фасоль", Price = 200, Group = groupGoodsDemo[2], Unit = unitsDemo[4] }, new GoodObjectModel { Name = "Чечевица", Price = 87, Group = groupGoodsDemo[2], Unit = unitsDemo[5] }, new GoodObjectModel { Name = "Лапша", Price = 100, Group = groupGoodsDemo[2], Unit = unitsDemo[5] }, new GoodObjectModel { Name = "Кетчуп", Price = 280, Group = groupGoodsDemo[2], Unit = unitsDemo[4] }, new GoodObjectModel { Name = "Майонез", Price = 0, Group = groupGoodsDemo[2], Unit = unitsDemo[6] }, new GoodObjectModel { Name = "Сахар", Price = 76, Group = groupGoodsDemo[2], Unit = unitsDemo[5] }, new GoodObjectModel { Name = "Соль", Price = 64, Group = groupGoodsDemo[2], Unit = unitsDemo[6] }, new GoodObjectModel { Name = "Сода", Price = 165, Group = groupGoodsDemo[2], Unit = unitsDemo[6] } }; if (!context.Goods.Any()) { context.Goods.AddRange(goodsDemo); context.SaveChanges(); } #endregion #region пользователи x17 / департаменты x7 if (!context.Departments.Any()) { context.Departments.AddRange( new DepartmentObjectModel { Name = "user", isReadonly = true }, new DepartmentObjectModel { Name = "Хозяйственный блок" }, new DepartmentObjectModel { Name = "Снабженцы" }, new DepartmentObjectModel { Name = "Секретариат" }, new DepartmentObjectModel { Name = "Производство" }, new DepartmentObjectModel { Name = "Бухгалтерия" }, new DepartmentObjectModel { Name = "ИТ" }); context.SaveChanges(); } if (!context.Users.Any()) { string demoPass = glob_tools.GetHashString("demo"); context.Users.AddRange( new UserObjectModel { Name = "system", DepartmentId = 1, Role = AccessLevelUserRolesEnum.Auth, Email = "*", Password = "******", LastWebVisit = DateTime.MaxValue, isReadonly = true, isGlobalFavorite = true, Information = "Системная учётная запись" }, new UserObjectModel { Name = "Иванова И", DepartmentId = 2, Role = AccessLevelUserRolesEnum.Verified, Email = "verified", Password = demoPass }, new UserObjectModel { Name = "Петрова П", DepartmentId = 2, Role = AccessLevelUserRolesEnum.Verified, Email = "demo1", Password = demoPass }, new UserObjectModel { Name = "Сидоров С", DepartmentId = 2, Role = AccessLevelUserRolesEnum.Verified, Email = "demo2", Password = demoPass }, new UserObjectModel { Name = "Ромашкин Р", DepartmentId = 2, Role = AccessLevelUserRolesEnum.Verified, Email = "demo3", Password = demoPass }, new UserObjectModel { Name = "Кузнецов К", DepartmentId = 4, Role = AccessLevelUserRolesEnum.Privileged, Email = "privileged", Password = demoPass }, new UserObjectModel { Name = "Зайцев З", DepartmentId = 4, Role = AccessLevelUserRolesEnum.Privileged, Email = "demo4", Password = demoPass }, new UserObjectModel { Name = "Новиков Н", DepartmentId = 4, Role = AccessLevelUserRolesEnum.Privileged, Email = "demo5", Password = demoPass }, new UserObjectModel { Name = "Морозов М", DepartmentId = 4, Role = AccessLevelUserRolesEnum.Privileged, Email = "demo6", Password = demoPass }, new UserObjectModel { Name = "Волков В", DepartmentId = 5, Role = AccessLevelUserRolesEnum.Privileged, Email = "manager", Password = demoPass }, new UserObjectModel { Name = "Голубев Г", DepartmentId = 5, Role = AccessLevelUserRolesEnum.Manager, Email = "demo7", Password = demoPass }, new UserObjectModel { Name = "Богданов Б", DepartmentId = 5, Role = AccessLevelUserRolesEnum.Privileged, Email = "demo8", Password = demoPass }, new UserObjectModel { Name = "Фёдоров Ф", DepartmentId = 5, Role = AccessLevelUserRolesEnum.Manager, Email = "demo9", Password = demoPass }, new UserObjectModel { Name = "Тарасов Т", DepartmentId = 6, Role = AccessLevelUserRolesEnum.Admin, Email = "demo10", Password = demoPass }, new UserObjectModel { Name = "Егоров Е", DepartmentId = 6, Role = AccessLevelUserRolesEnum.Admin, Email = "demo11", Password = demoPass }, new UserObjectModel { Name = "Орлов О", DepartmentId = 6, Role = AccessLevelUserRolesEnum.Admin, Email = "admin", Password = demoPass }, new UserObjectModel { Name = "Абрамович А", DepartmentId = 7, Role = AccessLevelUserRolesEnum.ROOT, Email = "root", Password = demoPass }); context.SaveChanges(); } #endregion #region склады количественного учёта номенклатуры warehousesDemo x3 WarehouseObjectModel[] warehousesDemo = new WarehouseObjectModel[] { new WarehouseObjectModel() { Name = "Центральный склад" }, new WarehouseObjectModel() { Name = "К доставке" }, new WarehouseObjectModel() { Name = "Магазин" } }; if (!context.Warehouses.Any()) { context.Warehouses.AddRange(warehousesDemo); context.SaveChanges(); } #endregion #region документы поступления на склад x14 if (!context.ReceiptesGoodsToWarehousesDocuments.Any()) { ReceiptToWarehouseDocumentModel[] warehouseReceipts = new ReceiptToWarehouseDocumentModel[] { new ReceiptToWarehouseDocumentModel() { AuthorId = 3, Name = "demo поступление на склад 14", Information = "demo пополнение 14. склад: " + warehousesDemo[2].Name, WarehouseReceipt = warehousesDemo[2] }, new ReceiptToWarehouseDocumentModel() { AuthorId = 2, Name = "demo поступление на склад 13", Information = "demo пополнение 13. склад: " + warehousesDemo[0].Name, WarehouseReceipt = warehousesDemo[0] }, new ReceiptToWarehouseDocumentModel() { AuthorId = 1, Name = "demo поступление на склад 12", Information = "demo пополнение 12. склад: " + warehousesDemo[1].Name, WarehouseReceipt = warehousesDemo[1] }, new ReceiptToWarehouseDocumentModel() { AuthorId = 1, Name = "demo поступление на склад 11", Information = "demo пополнение 11. склад: " + warehousesDemo[2].Name, WarehouseReceipt = warehousesDemo[2] }, new ReceiptToWarehouseDocumentModel() { AuthorId = 3, Name = "demo поступление на склад 10", Information = "demo пополнение 10. склад: " + warehousesDemo[1].Name, WarehouseReceipt = warehousesDemo[1] }, new ReceiptToWarehouseDocumentModel() { AuthorId = 1, Name = "demo поступление на склад 9", Information = "demo пополнение 9. склад: " + warehousesDemo[0].Name, WarehouseReceipt = warehousesDemo[0] }, new ReceiptToWarehouseDocumentModel() { AuthorId = 2, Name = "demo поступление на склад 8", Information = "demo пополнение 8. склад: " + warehousesDemo[1].Name, WarehouseReceipt = warehousesDemo[1] }, new ReceiptToWarehouseDocumentModel() { AuthorId = 3, Name = "demo поступление на склад 7", Information = "demo пополнение 7. склад: " + warehousesDemo[2].Name, WarehouseReceipt = warehousesDemo[2] }, new ReceiptToWarehouseDocumentModel() { AuthorId = 2, Name = "demo поступление на склад 6", Information = "demo пополнение 6. склад: " + warehousesDemo[0].Name, WarehouseReceipt = warehousesDemo[0] }, new ReceiptToWarehouseDocumentModel() { AuthorId = 1, Name = "demo поступление на склад 5", Information = "demo пополнение 5. склад: " + warehousesDemo[0].Name, WarehouseReceipt = warehousesDemo[0] }, new ReceiptToWarehouseDocumentModel() { AuthorId = 3, Name = "demo поступление на склад 4", Information = "demo пополнение 4. склад: " + warehousesDemo[2].Name, WarehouseReceipt = warehousesDemo[2] }, new ReceiptToWarehouseDocumentModel() { AuthorId = 2, Name = "demo поступление на склад 3", Information = "demo пополнение 3. склад: " + warehousesDemo[2].Name, WarehouseReceipt = warehousesDemo[2] }, new ReceiptToWarehouseDocumentModel() { AuthorId = 1, Name = "demo поступление на склад 2", Information = "demo пополнение 2. склад: " + warehousesDemo[1].Name, WarehouseReceipt = warehousesDemo[1] }, new ReceiptToWarehouseDocumentModel() { AuthorId = 2, Name = "demo поступление на склад 1", Information = "demo пополнение 1. склад: " + warehousesDemo[1].Name, WarehouseReceipt = warehousesDemo[1] } }; context.ReceiptesGoodsToWarehousesDocuments.AddRange(warehouseReceipts); context.SaveChanges(); //context.GoodMovementDocumentRows.AddRange(new RowGoodMovementRegisterModel[] // goodsDemo[0 7 19] //{ RowGoodMovementRegisterModel[] rows = new RowGoodMovementRegisterModel[] { new RowGoodMovementRegisterModel() { BodyDocumentId = 1, GoodId = goodsDemo[0].Id, Quantity = 22, UnitId = 1 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 1, GoodId = goodsDemo[7].Id, Quantity = 28, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 1, GoodId = goodsDemo[17].Id, Quantity = 14, UnitId = 3 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 2, GoodId = goodsDemo[19].Id, Quantity = 25, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 2, GoodId = goodsDemo[0].Id, Quantity = 23, UnitId = 3 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 2, GoodId = goodsDemo[7].Id, Quantity = 25, UnitId = 1 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 3, GoodId = goodsDemo[7].Id, Quantity = 13, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 3, GoodId = goodsDemo[0].Id, Quantity = 24, UnitId = 1 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 3, GoodId = goodsDemo[19].Id, Quantity = 12, UnitId = 3 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 4, GoodId = goodsDemo[7].Id, Quantity = 23, UnitId = 1 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 4, GoodId = goodsDemo[19].Id, Quantity = 25, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 4, GoodId = goodsDemo[7].Id, Quantity = 12, UnitId = 3 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 5, GoodId = goodsDemo[0].Id, Quantity = 23, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 5, GoodId = goodsDemo[7].Id, Quantity = 25, UnitId = 1 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 5, GoodId = goodsDemo[19].Id, Quantity = 12, UnitId = 3 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 6, GoodId = goodsDemo[19].Id, Quantity = 23, UnitId = 1 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 6, GoodId = goodsDemo[0].Id, Quantity = 25, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 6, GoodId = goodsDemo[7].Id, Quantity = 12, UnitId = 3 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 7, GoodId = goodsDemo[19].Id, Quantity = 23, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 7, GoodId = goodsDemo[0].Id, Quantity = 25, UnitId = 1 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 7, GoodId = goodsDemo[7].Id, Quantity = 12, UnitId = 3 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 8, GoodId = goodsDemo[0].Id, Quantity = 23, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 8, GoodId = goodsDemo[7].Id, Quantity = 25, UnitId = 1 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 8, GoodId = goodsDemo[19].Id, Quantity = 12, UnitId = 3 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 9, GoodId = goodsDemo[7].Id, Quantity = 23, UnitId = 3 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 9, GoodId = goodsDemo[0].Id, Quantity = 25, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 9, GoodId = goodsDemo[19].Id, Quantity = 12, UnitId = 1 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 10, GoodId = goodsDemo[0].Id, Quantity = 23, UnitId = 1 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 10, GoodId = goodsDemo[19].Id, Quantity = 25, UnitId = 3 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 10, GoodId = goodsDemo[7].Id, Quantity = 12, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 11, GoodId = goodsDemo[0].Id, Quantity = 23, UnitId = 1 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 11, GoodId = goodsDemo[7].Id, Quantity = 25, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 11, GoodId = goodsDemo[19].Id, Quantity = 12, UnitId = 3 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 12, GoodId = goodsDemo[7].Id, Quantity = 23, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 12, GoodId = goodsDemo[19].Id, Quantity = 25, UnitId = 1 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 12, GoodId = goodsDemo[0].Id, Quantity = 12, UnitId = 3 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 13, GoodId = goodsDemo[0].Id, Quantity = 23, UnitId = 1 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 13, GoodId = goodsDemo[19].Id, Quantity = 25, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 13, GoodId = goodsDemo[7].Id, Quantity = 12, UnitId = 3 } }; warehouseReceipts[0].RowsDocument = new List <RowGoodMovementRegisterModel>(new RowGoodMovementRegisterModel[] { new RowGoodMovementRegisterModel() { BodyDocumentId = 14, GoodId = goodsDemo[7].Id, Quantity = 23, UnitId = 3 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 14, GoodId = goodsDemo[0].Id, Quantity = 25, UnitId = 2 }, new RowGoodMovementRegisterModel() { BodyDocumentId = 14, GoodId = goodsDemo[19].Id, Quantity = 12, UnitId = 1 } }); //}); context.GoodMovementDocumentRows.AddRange(rows); context.SaveChanges(); } #endregion #region документы внутреннего перемещение номенклатуры (между складами) x7 if (!context.InternalDisplacementWarehouseDocuments.Any()) { InternalDisplacementWarehouseDocumentModel[] internalDisplacements = new InternalDisplacementWarehouseDocumentModel[] { new InternalDisplacementWarehouseDocumentModel() { WarehouseDebitingId = warehousesDemo[0].Id, WarehouseReceiptId = warehousesDemo[1].Id, AuthorId = 1, Name = "demo перемещение 7", Information = $"demo внутреннее перемещение 7. [{warehousesDemo[0].Name}] -> [{warehousesDemo[1].Name}]" }, new InternalDisplacementWarehouseDocumentModel() { WarehouseDebitingId = warehousesDemo[1].Id, WarehouseReceiptId = warehousesDemo[2].Id, AuthorId = 2, Name = "demo перемещение 6", Information = $"demo внутреннее перемещение 6. [{warehousesDemo[1].Name}] -> [{warehousesDemo[2].Name}]" }, new InternalDisplacementWarehouseDocumentModel() { WarehouseDebitingId = warehousesDemo[2].Id, WarehouseReceiptId = warehousesDemo[0].Id, AuthorId = 3, Name = "demo перемещение 5", Information = $"demo внутреннее перемещение 5. [{warehousesDemo[2].Name}] -> [{warehousesDemo[0].Name}]" }, new InternalDisplacementWarehouseDocumentModel() { WarehouseDebitingId = warehousesDemo[0].Id, WarehouseReceiptId = warehousesDemo[1].Id, AuthorId = 1, Name = "demo перемещение 4", Information = $"demo внутреннее перемещение 4. [{warehousesDemo[0].Name}] -> [{warehousesDemo[1].Name}]" }, new InternalDisplacementWarehouseDocumentModel() { WarehouseDebitingId = warehousesDemo[1].Id, WarehouseReceiptId = warehousesDemo[2].Id, AuthorId = 3, Name = "demo перемещение 3", Information = $"demo внутреннее перемещение 3. [{warehousesDemo[1].Name}] -> [{warehousesDemo[2].Name}]" }, new InternalDisplacementWarehouseDocumentModel() { WarehouseDebitingId = warehousesDemo[2].Id, WarehouseReceiptId = warehousesDemo[0].Id, AuthorId = 2, Name = "demo перемещение 2", Information = $"demo внутреннее перемещение 2. [{warehousesDemo[2].Name}] -> [{warehousesDemo[0].Name}]" }, new InternalDisplacementWarehouseDocumentModel() { WarehouseDebitingId = warehousesDemo[0].Id, WarehouseReceiptId = warehousesDemo[1].Id, AuthorId = 1, Name = "demo перемещение 1", Information = $"demo внутреннее перемещение 1. [{warehousesDemo[0].Name}] -> [{warehousesDemo[1].Name}]" } }; internalDisplacements[0].RowsDocument = new List <RowGoodMovementRegisterModel>(new RowGoodMovementRegisterModel[] { new RowGoodMovementRegisterModel() { GoodId = 1, Quantity = 1, UnitId = 1 }, new RowGoodMovementRegisterModel() { GoodId = 2, Quantity = 2, UnitId = 2 } }); internalDisplacements[1].RowsDocument = new List <RowGoodMovementRegisterModel>(new RowGoodMovementRegisterModel[] { new RowGoodMovementRegisterModel() { GoodId = 2, Quantity = 3, UnitId = 2 }, new RowGoodMovementRegisterModel() { GoodId = 1, Quantity = 2, UnitId = 1 } }); internalDisplacements[2].RowsDocument = new List <RowGoodMovementRegisterModel>(new RowGoodMovementRegisterModel[] { new RowGoodMovementRegisterModel() { GoodId = 1, Quantity = 4, UnitId = 1 }, new RowGoodMovementRegisterModel() { GoodId = 2, Quantity = 3, UnitId = 2 } }); internalDisplacements[3].RowsDocument = new List <RowGoodMovementRegisterModel>(new RowGoodMovementRegisterModel[] { new RowGoodMovementRegisterModel() { GoodId = 2, Quantity = 3, UnitId = 2 }, new RowGoodMovementRegisterModel() { GoodId = 1, Quantity = 2, UnitId = 1 } }); internalDisplacements[4].RowsDocument = new List <RowGoodMovementRegisterModel>(new RowGoodMovementRegisterModel[] { new RowGoodMovementRegisterModel() { GoodId = 1, Quantity = 2, UnitId = 1 }, new RowGoodMovementRegisterModel() { GoodId = 2, Quantity = 5, UnitId = 2 } }); internalDisplacements[5].RowsDocument = new List <RowGoodMovementRegisterModel>(new RowGoodMovementRegisterModel[] { new RowGoodMovementRegisterModel() { GoodId = 2, Quantity = 3, UnitId = 2 }, new RowGoodMovementRegisterModel() { GoodId = 1, Quantity = 2, UnitId = 1 } }); internalDisplacements[6].RowsDocument = new List <RowGoodMovementRegisterModel>(new RowGoodMovementRegisterModel[] { new RowGoodMovementRegisterModel() { GoodId = 1, Quantity = 2, UnitId = 1 }, new RowGoodMovementRegisterModel() { GoodId = 2, Quantity = 3, UnitId = 2 } }); context.InternalDisplacementWarehouseDocuments.AddRange(internalDisplacements); context.SaveChanges(); } #endregion #region остатки номенклатуры в контексте складов x if (!context.InventoryGoodsBalancesWarehouses.Any()) { context.InventoryGoodsBalancesWarehouses.AddRange(new InventoryBalancesWarehousesAnalyticalModel[] { }); context.SaveChanges(); } #endregion #region документы отгрузки номенклатуры в доставку x if (!context.MovementTurnoverDeliveryDocuments.Any()) { context.MovementTurnoverDeliveryDocuments.AddRange(new MovementTurnoverDeliveryDocumentModel[] { }); context.SaveChanges(); } #endregion #region остатки номенклатуры в контексте доставки x if (!context.InventoryGoodsBalancesDeliveries.Any()) { context.InventoryGoodsBalancesDeliveries.AddRange(new InventoryBalancesDeliveriesAnalyticalModel[] { }); context.SaveChanges(); } #endregion }
public async Task <ActionResult <object> > GetUnitGood([FromQuery] PaginationParametersModel pagingParameters, int id) { UnitGoodObjectModel unit = await _context.Units.FindAsync(id); if (unit == null) { _logger.LogError("Запрашиваемая единица измерения не найдена: id={0}", id); return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Запрашиваемая единица измерения не найдена", Status = StylesMessageEnum.danger.ToString() })); } IQueryable <GoodObjectModel> goods = _context.Goods.Where(x => x.UnitId == id).OrderBy(x => x.Id); if (_user.Role < AccessLevelUserRolesEnum.Admin) { goods = goods.Where(x => !x.isDisabled); } pagingParameters.Init(await goods.CountAsync()); HttpContext.Response.Cookies.Append("rowsCount", pagingParameters.CountAllElements.ToString()); if (pagingParameters.PageNum > 1) { goods = goods.Skip(pagingParameters.Skip); } string TypeName = nameof(UnitGoodObjectModel); var qGoods = from good in goods.Include(x => x.Unit).Include(x => x.Group) join UserFavoriteLocator in _context.UserFavoriteLocators on new { ObjectId = good.Id, TypeName, UserId = _user.Id } equals new { UserFavoriteLocator.ObjectId, UserFavoriteLocator.TypeName, UserFavoriteLocator.UserId } into joinFavoriteLocator from isFavoriteMark in joinFavoriteLocator.DefaultIfEmpty() select new { good, isFavoriteMark }; return(new ObjectResult(new ServerActionResult() { Success = true, Info = "Запрос номенклатурнй группы обработан", Status = StylesMessageEnum.success.ToString(), Tag = new { unit.Id, unit.Name, unit.Information, noDelete = await _context.GoodMovementDocumentRows.AnyAsync(x => x.UnitId == id) || pagingParameters.CountAllElements > 0, goods = await qGoods.Take(pagingParameters.PageSize).Select(selectItem => new { selectItem.good.Id, selectItem.good.Name, selectItem.good.Price, selectItem.good.Information, selectItem.good.isReadonly, selectItem.good.isDisabled, selectItem.good.isGlobalFavorite, isUserFavorite = selectItem.isFavoriteMark != null, Group = new { selectItem.good.Group.Id, selectItem.good.Group.Name, selectItem.good.Group.Information }, Unit = new { selectItem.good.Unit.Id, selectItem.good.Unit.Name } }).ToListAsync() } })); }
public async Task <IActionResult> PutUnitGood(int id, UnitGoodObjectModel ajaxUnit) { _logger.LogInformation($"Редактирование единицы измерения [#{id}]. Инициатор: " + _user.FullInfo); string msg; ajaxUnit.Name = ajaxUnit.Name.Trim(); ajaxUnit.Information = ajaxUnit.Information.Trim(); if (!ModelState.IsValid || string.IsNullOrEmpty(ajaxUnit.Name)) { msg = "Ошибка контроля валидности модели"; _logger.LogError(msg); return(new ObjectResult(new ServerActionResult() { Success = false, Info = msg, Status = StylesMessageEnum.danger.ToString(), Tag = ModelState })); } if (id != ajaxUnit.Id || !await _context.Units.AnyAsync(x => x.Id == id)) { msg = $"Ошибка в запросе. Проверка: {id} != unitGoodAjax.Id || await _context.Units.AnyAsync(x => x.Id == {id})"; _logger.LogError(msg); return(new ObjectResult(new ServerActionResult() { Success = false, Info = msg, Status = StylesMessageEnum.danger.ToString() })); } if (await _context.Units.AnyAsync(x => x.Name.ToLower() == ajaxUnit.Name.ToLower() && x.Id != ajaxUnit.Id)) { msg = "Единица измерения с таким именем уже существует. Придумайте уникальное"; _logger.LogError(msg); return(new ObjectResult(new ServerActionResult() { Success = false, Info = msg, Status = StylesMessageEnum.danger.ToString() })); } UnitGoodObjectModel unitGoodDb = await _context.Units.FindAsync(ajaxUnit.Id); unitGoodDb.Name = ajaxUnit.Name; unitGoodDb.Information = ajaxUnit.Information; _context.Units.Update(unitGoodDb); try { await _context.SaveChangesAsync(); msg = $"Изменения в [еденице измерения] [#{unitGoodDb.Id}] сохранены"; _logger.LogInformation(msg); return(new ObjectResult(new ServerActionResult() { Success = true, Info = msg, Status = StylesMessageEnum.success.ToString() })); } catch (Exception ex) { msg = $"Во время сохранения изменений 'Единицы измерения' [#{unitGoodDb.Id}] произошла ошибка: {ex.Message}{(ex.InnerException == null ? "" : ". InnerException: " + ex.InnerException.Message)}"; _logger.LogError(ex, msg); return(new ObjectResult(new ServerActionResult() { Success = false, Info = msg, Status = StylesMessageEnum.danger.ToString() })); } }