//[AllowAnonymous] public async Task <IActionResult> Putinvd_op([FromRoute] Guid id, [FromBody] invd_op varinvd_op) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != varinvd_op.invd_opId) { return(BadRequest()); } _context.Entry(varinvd_op).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!invd_opExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
//[AllowAnonymous] public async Task <IActionResult> Postinvd_op([FromBody] invd_op varinvd_op) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.invd_op.Add(varinvd_op); await _context.SaveChangesAsync(); return(CreatedAtAction("Getinvd_op", new { id = varinvd_op.invd_opId }, varinvd_op)); }
public async Task <string> Operation_in(Guid uid, invops_in varinvops_in) { string result = ""; invp_data m = null; invp_tag t; t = _context.invp_tag.FirstOrDefault(t => t.RFID == varinvops_in.rfid); if (t == null) { // result = "Метка не зарегистрирована. "; } if (t != null) { m = _context.invp_data.FirstOrDefault(z => z.invp_dataId == t.invp_dataId); if (m == null) { result += "Запчасть не обнаружена. "; } } else { m = _context.invp_data.FirstOrDefault(z => z.invp_dataId == varinvops_in.thePart); if (m == null) { result = "Запчасть не обнаружена. "; } } invwh_cell c = null; c = _context.invwh_cell.FirstOrDefault(cc => cc.SHCODE == varinvops_in.shCode); if (c == null) { result += "Ячейка не найдена. "; } invd_op op = _context.invd_op.FirstOrDefault(op => op.name == "Приемка"); if (op == null) { //result += "Нет операции 'Приемка' в справочнике. "; op = new invd_op(); op.invd_opId = Guid.NewGuid(); op.name = "Приемка"; _context.invd_op.Add(op); await _context.SaveChangesAsync(); } if (varinvops_in.quantity <= 0) { result += "Количество должно быть положительным числом. "; } if (m != null && c != null && varinvops_in.quantity > 0) { if (t == null) { t = new invp_tag(); t.invp_dataId = m.invp_dataId; t.RFID = varinvops_in.rfid; _context.invp_tag.Add(t); } invwh_loc loc = null; loc = _context.invwh_loc.FirstOrDefault(l => l.invwh_locId == c.invwh_locId); invw_info e = null; { e = new invw_info(); e.invw_infoId = Guid.NewGuid(); e.Qty = varinvops_in.quantity; e.storepartid = m.invp_dataId; e.locationid = c.invwh_locId; e.cellid = c.invwh_cellId; e.RFID = varinvops_in.rfid; if (loc != null) { e.theStore = loc.theStore; } _context.invw_info.Add(e); } // save history invm_info h = new invm_info(); h.invm_infoId = Guid.NewGuid(); h.fromcell = Guid.Empty; h.toCell = c.invwh_cellId; h.theUser = uid; h.theOP = op.invd_opId; h.optime = DateTime.Now; h.Qty = varinvops_in.quantity; h.storepartid = m.invp_dataId; // запчасть h.theDep = Guid.Empty; _context.invm_info.Add(h); // save operation for control only _context.invops_in.Add(varinvops_in); await _context.SaveChangesAsync(); return("OK"); } else { _context.invops_in.Add(varinvops_in); await _context.SaveChangesAsync(); return(result); } }
public async Task <string> Operation_out(Guid uid, invops_out varinvops_out) { string result = ""; invp_data m = null; invp_tag t = null; t = _context.invp_tag.FirstOrDefault(z => z.RFID == varinvops_out.rfid); if (t != null) { m = _context.invp_data.FirstOrDefault(z => z.invp_dataId == t.invp_dataId); if (m == null) { result = "Ошибка. Запчасть не обнаружена"; } else { result = m.name; } } else { result = "Ошибка. Запчасть не обнаружена"; } invwh_cell c = null; c = _context.invwh_cell.FirstOrDefault(cc => cc.SHCODE == varinvops_out.shCode); if (c == null) { result += "Ячейка не найдена. "; } invd_dep dep = null; dep = _context.invd_dep.FirstOrDefault(dd => dd.invd_depId == varinvops_out.theDept); if (dep == null) { result += "Отдел не найден. "; } invd_op op = _context.invd_op.FirstOrDefault(op => op.name == "Отгрузка"); if (op == null) { op = new invd_op(); op.invd_opId = Guid.NewGuid(); op.name = "Отгрузка"; _context.invd_op.Add(op); await _context.SaveChangesAsync(); } if (varinvops_out.quantity <= 0) { result += "Количество должно быть положительным числом. "; } if (m != null && c != null && dep != null && varinvops_out.quantity > 0) { invwh_loc loc = null; loc = _context.invwh_loc.FirstOrDefault(l => l.invwh_locId == c.invwh_locId); // update store status invw_info e = null; e = _context.invw_info.FirstOrDefault(ex => ex.RFID == t.RFID && ex.cellid == c.invwh_cellId); if (e != null) { if (e.Qty > varinvops_out.quantity) { e.Qty -= varinvops_out.quantity; _context.Entry(e).State = EntityState.Modified; } else if (e.Qty == varinvops_out.quantity) { _context.invw_info.Remove(e); } else if (e.Qty < varinvops_out.quantity) { result += "Количество запчастей в ячейке не достаточно для списания. Всего: " + e.Qty.ToString(); _context.invops_out.Add(varinvops_out); await _context.SaveChangesAsync(); return(result); } } else { result += "Не найдена запчасть в ячейке. "; _context.invops_out.Add(varinvops_out); await _context.SaveChangesAsync(); return(result); } // save history invm_info h = new invm_info(); h.invm_infoId = Guid.NewGuid(); h.fromcell = c.invwh_cellId; h.toCell = Guid.Empty; h.theUser = uid; h.theOP = op.invd_opId; h.optime = DateTime.Now; h.Qty = varinvops_out.quantity; h.storepartid = m.invp_dataId; // запчасть h.theDep = dep.invd_depId; _context.invm_info.Add(h); _context.invops_out.Add(varinvops_out); await _context.SaveChangesAsync(); return("OK"); } else { _context.invops_out.Add(varinvops_out); await _context.SaveChangesAsync(); return(result); } }
public async Task <string> Operaion_move(Guid uid, invops_move varinvops_move) { string result = ""; invp_data m = null; invp_tag t = null; t = _context.invp_tag.FirstOrDefault(z => z.RFID == varinvops_move.rfid); if (t != null) { m = _context.invp_data.FirstOrDefault(z => z.invp_dataId == t.invp_dataId); if (m == null) { result = "Ошибка. Запчасть не обнаружена"; } else { result = m.name; } } else { result = "Ошибка. Запчасть не обнаружена"; } invwh_cell c = null; c = _context.invwh_cell.FirstOrDefault(cc => cc.SHCODE == varinvops_move.shCodeFrom); if (c == null) { result += "Исходная ячейка не найдена. "; } invwh_cell cTo = null; cTo = _context.invwh_cell.FirstOrDefault(cc => cc.SHCODE == varinvops_move.shCodeTo); if (cTo == null) { result += "Целевая ячейка не найдена. "; } invd_op op = _context.invd_op.FirstOrDefault(op => op.name == "Перемещение"); if (op == null) { op = new invd_op(); op.invd_opId = Guid.NewGuid(); op.name = "Перемещение"; _context.invd_op.Add(op); await _context.SaveChangesAsync(); } //if (varinvops_move.quantity <= 0) //{ // result += "Количество должно быть положительным числом. "; //} if (m != null && c != null && cTo != null) //&& varinvops_move.quantity > 0) { invwh_loc loc = null; loc = _context.invwh_loc.FirstOrDefault(l => l.invwh_locId == c.invwh_locId); invwh_loc locTo = null; locTo = _context.invwh_loc.FirstOrDefault(l => l.invwh_locId == cTo.invwh_locId); // update source cell status invw_info e = null; //e = _context.invw_info.FirstOrDefault(ex => ex.storepartid == m.invp_dataId && ex.cellid == c.invwh_cellId); e = _context.invw_info.FirstOrDefault(ex => ex.RFID == t.RFID && ex.cellid == c.invwh_cellId); int Qty = 0; if (e != null) { //if (e.Qty > varinvops_move.quantity) //{ // e.Qty -= varinvops_move.quantity; // _context.Entry(e).State = EntityState.Modified; //} //else if (e.Qty == varinvops_move.quantity) { Qty = (int)e.Qty; _context.invw_info.Remove(e); } //else if (e.Qty < varinvops_move.quantity) //{ // result += "Количество запчастей в ячейке не достаточно для перемещения. Всего: " + e.Qty.ToString(); // _context.invops_move.Add(varinvops_move); // await _context.SaveChangesAsync(); // return result; //} } else { result += "Не найдена запчасть в исходной ячейке. "; _context.invops_move.Add(varinvops_move); await _context.SaveChangesAsync(); return(result); } // update goal cell status invw_info eTo = null; //eTo = _context.invw_info.FirstOrDefault(ex => ex.storepartid == m.invp_dataId && ex.cellid == cTo.invwh_cellId); //if (eTo != null) //{ // eTo.Qty += varinvops_move.quantity; // _context.Entry(eTo).State = EntityState.Modified; //} //else { eTo = new invw_info(); eTo.invw_infoId = Guid.NewGuid(); //eTo.Qty = varinvops_move.quantity; eTo.Qty = Qty; // при перемещении количество не меняем eTo.storepartid = m.invp_dataId; eTo.locationid = cTo.invwh_locId; eTo.cellid = cTo.invwh_cellId; eTo.RFID = varinvops_move.rfid; if (locTo != null) { eTo.theStore = locTo.theStore; } _context.invw_info.Add(eTo); } // save history invm_info h = new invm_info(); h.invm_infoId = Guid.NewGuid(); h.fromcell = c.invwh_cellId; h.toCell = cTo.invwh_cellId; h.theUser = uid; h.theOP = op.invd_opId; h.optime = DateTime.Now; //h.Qty = varinvops_move.quantity; h.Qty = Qty; h.storepartid = m.invp_dataId; // запчасть h.theDep = Guid.Empty; _context.invm_info.Add(h); // save operation for control only _context.invops_move.Add(varinvops_move); await _context.SaveChangesAsync(); return("OK"); } else { _context.invops_move.Add(varinvops_move); await _context.SaveChangesAsync(); return(result); } }