// POST api/BillofMaterialDescription public HttpResponseMessage PostBillofMaterialDescription(BillofMaterialDescription billofmaterialdescription) { SalesQuotationDescription salesquotationdescription = db.SalesQuotationDescriptions.Where(q => (q.SalesQuotationID == billofmaterialdescription.SalesQuotationID) && (q.SalesSectionID == billofmaterialdescription.SalesSectionID) && (q.ProductID == billofmaterialdescription.ProductID)).FirstOrDefault(); if (ModelState.IsValid) { // db.BillofMaterialDescriptions.Add(billofmaterialdescription); db.Entry(billofmaterialdescription).State = billofmaterialdescription.BillofMaterialDescriptionID == 0 ? EntityState.Added : EntityState.Modified; db.SaveChanges(); // var CostPrice = (db.BillofMaterialDescriptions.Where(r => (r.BillofMaterialDescriptionID == billofmaterialdescription.BillofMaterialDescriptionID) && (r.ProductID == billofmaterialdescription.ProductID)).Select(r => (r.RawMaterialQuantity))); var CostPrice = (db.BillofMaterialDescriptions.Where(r => (r.BillofMaterialID == billofmaterialdescription.BillofMaterialID) && (r.SalesSectionID == billofmaterialdescription.SalesSectionID) && (r.ProductID == billofmaterialdescription.ProductID) && (r.IsBOM == true)).Select(r => ((r.RawMaterialQuantity * (r.RawMaterialUniteRate + r.OtherCost)) / r.ProductQuantity))).ToList().Sum(); salesquotationdescription.CostPrice = Convert.ToDecimal(CostPrice); salesquotationdescription.InsertBy = loginUser.UserID; db.Entry(salesquotationdescription).State = EntityState.Modified; db.SaveChanges(); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, billofmaterialdescription); response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = billofmaterialdescription.BillofMaterialDescriptionID })); return response; } else { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } }
// PUT api/BillofMaterialDescription/5 public HttpResponseMessage PutBillofMaterialDescription(long id, BillofMaterialDescription billofmaterialdescription) { if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } billofmaterialdescription.Collaborator = null; billofmaterialdescription.RawMaterial = null; billofmaterialdescription.ProjectSetup = null; billofmaterialdescription.ProcesStatus = null; if (id != billofmaterialdescription.BillofMaterialDescriptionID) { return Request.CreateResponse(HttpStatusCode.BadRequest); } billofmaterialdescription.UpdateBy = loginUser.UserID; db.Entry(billofmaterialdescription).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex); } return Request.CreateResponse(HttpStatusCode.OK); }