public ActionResult InstallCartridge(int departmentID, int deviceID = -1, int cartridgeID = -1) { List <p000047> devices = db.p000047.Where(x => x.kod_p000044 == departmentID).ToList(); FitDevice fit_cartridges = new FitDevice(); ViewBag.Devices = devices; if (deviceID == -1 || depID != departmentID) { depID = departmentID; return(PartialView("ShowDevice"));//Если не передано deviceID, то добавляем один инпут с выбором девайса для этого отдела+ } else { if (cartridgeID == -1 || devID != deviceID) { devID = deviceID; ViewBag.Cartridges = fit_cartridges.GetCatridges(deviceID); ViewBag.DeviceID = deviceID; return(PartialView("ShowDevicesAndCartridges"));//Если передан девайсИД, но не передан картриджИД, то добавляем к изначальной форме два инпута(с выбором девайса для этого отдела и выбором картриджа для этого девайса)+ } else { List <p000054> install_list = db.p000054.Where(x => x.kod_p000047 == deviceID).ToList();//Список всех установленных картриджей на это устройство p000054 last_installed_cartridge = install_list.FirstOrDefault(x => x.date == install_list.Max(z => z.date)); p000054 install = new p000054(); int licID = cartridgeID; if (last_installed_cartridge != null) { licID = last_installed_cartridge.kod_p000052; db.CartridgeChangeStatus(last_installed_cartridge.kod_p000052, 6);//Ложим картридж, который был установлен на этом девайсе в коробку } //wr.GetRequest(departmentID, deviceID, licID, Server.MapPath("~/Content/install_request1.docx"), Server.MapPath("~/Content/install_request.docx")); OpenXML instReq = new OpenXML(); install_request = instReq.CreatePackageAsBytes(departmentID, deviceID, licID); db.CartridgeChangeStatus(cartridgeID, 3);//Устанавливаем картридж install.kod_p000052 = cartridgeID; install.kod_p000047 = deviceID; install.date = DateTime.Now; db.p000054.Add(install); db.SaveChanges(); //Добавялем запись в 54 таблицу return(PartialView("InstallCartridgeReport")); //Если переданы значения с формы, то нужно найти картриджИД с таким девайсИД и максимальной датой в таблице 54, после чего для этого картриджа в таблице 52 изменить значение статусИД на !в коробке!. Потом для для картриджИД из формы нужно изменить статусИД на установлен и записать в таблицу 54 новую запись+ } } }
public ActionResult ChangeStatus(int cartridgeID, int statusID, int deviceID = -1) { ViewBag.Devices = db.p000047.ToList(); ViewBag.Departments = db.p000044.ToList(); ViewBag.Models = db.p000045.ToList(); ViewBag.Devices = db.p000047.ToList(); FitDevice fit_device = new FitDevice(); if (deviceID == -1) { if (statusID == 3) { try { ViewBag.FitDevices = fit_device.GetDevices(cartridgeID); return(PartialView("AddInputStatus"));//Добавляем в форму еще инпут с deviceID + } catch { ViewBag.Message = "Данного картриджа уже нет в базе"; return(PartialView("Sucsess")); } } else { try { db.CartridgeChangeStatus(cartridgeID, statusID); ViewBag.Message = "База обновлена"; } catch { ViewBag.Message = "Данного картриджа уже нет в базе"; } return(PartialView("Sucsess"));//Нужно вызвать функцию бд, которая изменит таблцу 52 для этого cartridgeID и запишет данные в 53 таблицу(там тригер, ничего не нужно)+ } } else { if (statusID == 3) { try { db.CartridgeChangeStatus(cartridgeID, statusID); p000054 install = new p000054(); install.kod_p000052 = cartridgeID; install.kod_p000047 = deviceID; install.date = DateTime.Now; db.p000054.Add(install); db.SaveChanges(); ViewBag.Message = "База обновлена"; } catch { ViewBag.Message = "Данного картриджа уже нет в базе"; } return(PartialView("Sucsess"));//Нужно вызвать функцию бд, которая изменит таблицу 52 для этого cartridgeID и запишет данные в таблицу 54+ } else { ViewBag.Message = "Неверный ввод данных"; return(PartialView("Sucsess"));//Нужно вернуть ошибку о неверном вводе данных } } }