public long Add(ProjectMaterials Obj) { try { SqlParameter[] paramList = new SqlParameter[] { new SqlParameter("@ProjectID", Obj.ProjectID), new SqlParameter("@ItemCode", Obj.MaterialID), new SqlParameter("@UsedQty", Obj.UsedQty), new SqlParameter("@DamagedQty", Obj.DamagedQty), new SqlParameter("@UnitPrice", Obj.UnitPrice), new SqlParameter("@EnteredBy", Obj.EnteredBy), new SqlParameter("@ItemTypeName", Obj.ItemTypeName), new SqlParameter("@outParam", SqlDbType.Int, 120) { Direction = ParameterDirection.Output } }; return(Execute.RunSP_RowsEffected(Connection, "SPADD_ProjectMaterials", paramList)); } catch (Exception ex) { throw new Exception(ex.Message, ex); } }
public async Task <IActionResult> Edit(int id, [Bind("ProjectID,InventoryID,MatDelivery,MatInstall,MatEstQty,MatActQty")] ProjectMaterials projectMaterials) { if (id != projectMaterials.ProjectID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(projectMaterials); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProjectMaterialsExists(projectMaterials.ProjectID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["InventoryID"] = new SelectList(_context.Inventories, "ID", "ID", projectMaterials.InventoryID); ViewData["ProjectID"] = new SelectList(_context.Projects, "ID", "Desc", projectMaterials.ProjectID); return(View(projectMaterials)); }
public async Task <IActionResult> Create([Bind("ID,Name,Desc,EstCost,BidDate,EstStartDate,EstFinishDate,Cost,BidCustApproved,BidManagementApproved,ClientID,DesignerID")] Project project, string[] selectedLabOptions, string[] selectedLabQuantity, string[] selectedMatOptions, string[] selectedMatQuantity) { try { int ctr = 0; int a = 0; //Add the selected conditions if (selectedLabOptions != null) { project.LabourSummaries = new List <LabourSummary>(); foreach (var employeeType in selectedLabOptions) { var employeeTypeToAdd = new LabourSummary { ProjectID = project.ID, EmployeeTypeID = int.Parse(employeeType), Hours = int.Parse(selectedLabQuantity[ctr]) }; project.LabourSummaries.Add(employeeTypeToAdd); ctr++; } } if (selectedMatOptions != null) { project.ProjectMaterials = new List <ProjectMaterials>(); foreach (var inventory in selectedMatOptions) { var inventoryToAdd = new ProjectMaterials { ProjectID = project.ID, InventoryID = int.Parse(inventory), MatEstQty = int.Parse(selectedMatQuantity[a]) }; project.ProjectMaterials.Add(inventoryToAdd); a++; } } if (ModelState.IsValid) { _context.Add(project); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } } catch (RetryLimitExceededException /* dex */) { ModelState.AddModelError("", "Unable to save changes after multiple attempts. Try again, and if the problem persists, see your system administrator."); } catch (Exception) { ModelState.AddModelError("", "Unknown error!"); } PopulateAssignedEmployeeTypes(project); PopulateAssignedMaterials(project); PopulateDropDownLists(project); return(View(project)); }
public async Task <IActionResult> Create([Bind("ProjectID,InventoryID,MatDelivery,MatInstall,MatEstQty,MatActQty")] ProjectMaterials projectMaterials) { if (ModelState.IsValid) { _context.Add(projectMaterials); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["InventoryID"] = new SelectList(_context.Inventories, "ID", "ID", projectMaterials.InventoryID); ViewData["ProjectID"] = new SelectList(_context.Projects, "ID", "Desc", projectMaterials.ProjectID); return(View(projectMaterials)); }
private void UpdateMaterials(string[] selectedMatOptions, string[] selectedMatQuantity, Project projectToUpdate) { if (selectedMatOptions == null) { projectToUpdate.LabourSummaries = new List <LabourSummary>(); return; } int ctr = 0; var selectedMatsHS = new HashSet <string>(selectedMatOptions); var selectedMatQuantityHS = new HashSet <string>(selectedMatQuantity); var ProjectMaterialsHS = new HashSet <int> (projectToUpdate.ProjectMaterials.Select(c => c.InventoryID)); foreach (var inventory in _context.Inventories) { if (selectedMatsHS.Contains(inventory.ID.ToString())) { if (ProjectMaterialsHS.Contains(inventory.ID)) { ProjectMaterials inventoryToRemove = projectToUpdate.ProjectMaterials.SingleOrDefault(c => c.InventoryID == inventory.ID); _context.Remove(inventoryToRemove); projectToUpdate.ProjectMaterials.Add(new ProjectMaterials { ProjectID = projectToUpdate.ID, InventoryID = inventory.ID, MatEstQty = int.Parse(selectedMatQuantity[ctr]) }); } if (!ProjectMaterialsHS.Contains(inventory.ID)) { projectToUpdate.ProjectMaterials.Add(new ProjectMaterials { ProjectID = projectToUpdate.ID, InventoryID = inventory.ID, MatEstQty = int.Parse(selectedMatQuantity[ctr]) }); } ctr++; } else { if (ProjectMaterialsHS.Contains(inventory.ID)) { ProjectMaterials inventoryToRemove = projectToUpdate.ProjectMaterials.SingleOrDefault(c => c.InventoryID == inventory.ID); _context.Remove(inventoryToRemove); } } } }