public void saveDetail(production_order_set_up_scheduleModel model) { //For production_order_set_up_schedule var listHasId = model.list_item_schedule.Where(d => d.db.id != 0).Select(d => d.db.id).ToList(); var delete1 = _context.production_order_item_schedules .Where(t => t.id_production_order_item == model.db.id) .Where(t => !listHasId.Contains(t.id)); ; _context.RemoveRange(delete1); _context.SaveChanges(); for (int i = 0; i < model.list_item_schedule.Count; i++) { if (model.list_item_schedule[i].db.id == 0) { model.list_item_schedule[i].db.index_pos = i; model.list_item_schedule[i].db.status_del = 1; } else { var dbold = _context.production_order_item_schedules .Where(d => d.id == model.list_item_schedule[i].db.id).FirstOrDefault(); dbold.index_pos = i; _context.SaveChanges(); } } var listInsert1 = model.list_item_schedule .Where(d => d.db.id == 0) .Select(d => d.db).ToList(); _context.production_order_item_schedules.AddRange(listInsert1); _context.SaveChanges(); }
public int additional_export(production_order_set_up_scheduleModel model) { var listinsertNeed = new List <production_order_need_supplier_schedule_db>(); var ids = model.list_item_need_suppliers_schedule.Select(t => t.db.id).Distinct().ToList(); var listdelete = _context.production_order_need_supplier_schedules .Where(t => t.id_production_order_item == model.db.id) .Where(t => t.type == 2) .Where(t => !ids.Contains(t.id)); _context.RemoveRange(listdelete); _context.SaveChanges(); for (int i = 0; i < model.list_item_need_suppliers_schedule.Count; i++) { var item = model.list_item_need_suppliers_schedule[i]; if (item.db.id == 0) { item.db.quantity_unit_main = item.db.quantity * item.db.conversion_factor; item.db.status_export = 1; item.db.index_pos = i; item.db.id_production_order = model.db.id_production_order; item.db.id_production_order_item = model.db.id; item.db.status_del = 1; listinsertNeed.Add(item.db); } } _context.production_order_need_supplier_schedules.AddRange(listinsertNeed); _context.SaveChanges(); return(1); }
public int update(production_order_set_up_scheduleModel model) { saveDetail(model); saveDetailProvide(model); var db = _context.production_order_items.Where(d => d.id == model.db.id).FirstOrDefault(); db.status_schedule = 2; _context.SaveChanges(); return(1); }
private bool checkModelStateEdit(production_order_set_up_scheduleModel item) { if (item.list_item_schedule.Count == 0) { ModelState.AddModelError("list_item_schedule", "required"); } if (item.list_item_schedule.Sum(d => d.db.quantity) != item.db.quantity) { ModelState.AddModelError("list_item_schedule", "inventory.total_amount_schedule_must_equal_amount_of_production"); } return(ModelState.IsValid); }
public void saveDetailProvide(production_order_set_up_scheduleModel model) { var delete = _context.production_order_need_supplier_schedules .Where(t => t.type == 1) .Where(t => t.id_production_order_item == model.db.id); var deleteForProcess = _context.production_processes .Where(t => t.id_production_order_item == model.db.id); _context.RemoveRange(deleteForProcess); _context.SaveChanges(); var need = _context.production_order_need_suppliers.Where(t => t.id_production_order_item == model.db.id).ToList(); var listinsertNeed = new List <production_order_need_supplier_schedule_db>(); for (int i = 0; i < model.list_item_schedule.Count; i++) { for (int j = 0; j < need.Count; j++) { var it = need[j]; listinsertNeed.Add(new production_order_need_supplier_schedule_db() { conversion_factor = it.conversion_factor, create_by = model.list_item_schedule[i].db.create_by, create_date = DateTime.Now, id = 0, id_item = it.id_item, id_production_order = model.db.id_production_order, id_production_order_item = model.db.id, id_production_order_need_supplier = model.list_item_schedule[i].db.id, id_specification = it.id_specification, id_unit = it.id_unit, id_unit_main = it.id_unit_main, index_pos = j, id_sys_factory = model.list_item_schedule[i].db.id_sys_factory, id_sys_factory_line = model.list_item_schedule[i].db.id_sys_factory_line, quota_main = it.quota_main, quota = it.quota, status_export = 1, need_supplier_date = model.list_item_schedule[i].db.working_date, quantity = model.list_item_schedule[i].db.quantity * it.quota, quantity_unit_main = model.list_item_schedule[i].db.quantity_unit_main * it.quota_main, type_add = it.type_add, id_phase = it.id_phase, type = 1, status_del = 1 }); } } _context.production_order_need_supplier_schedules.AddRange(listinsertNeed); _context.SaveChanges(); }