示例#1
0
        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);
            }
        }
示例#2
0
        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));
        }
示例#4
0
        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);
                    }
                }
            }
        }