public async Task <ActionResult> printOutOfStock([FromBody] printOutOfStockRequest printOutOfStockRequest) { try { var items = await(from o in db.TbtOrder where o.DocNum == printOutOfStockRequest.DocNum join g in db.TbmItemGroup on o.ItemCode.Trim().Substring(0, 1) equals g.ItemGrpPrefix.Trim() select new { o, g }).ToListAsync(); List <OutOfStock> outOfStocktems = new List <OutOfStock>(); items.ForEach(x => { OutOfStock l = new OutOfStock { Dscription = x.o.Dscription, ItemCode = x.o.ItemCode, Price = (double)x.o.Price, Qty = (double)x.o.Quantity, ItemGrpCode = x.g.ItemGrpCode, ItemGrpName = x.g.ItemGrpName }; outOfStocktems.Add(l); }); OutOfStockDocumentModel outOfStockDocumentModel = new OutOfStockDocumentModel { Address = items.FirstOrDefault().o.Address, CardName = items.FirstOrDefault().o.CardName, DocDate = items.FirstOrDefault().o.DocDate, DocDueDate = items.FirstOrDefault().o.DocDueDate, DocNum = printOutOfStockRequest.DocNum, OutOfStocks = outOfStocktems, Remark = items.FirstOrDefault().o.Remark, }; OutOfStockDocument pDoc = new OutOfStockDocument(this._hostingEnvironment); Stream resultPDFStream = pDoc.CreatePDF(outOfStockDocumentModel); resultPDFStream.Position = 0; if (resultPDFStream.Length != 0) { FileStreamResult fileStreamResult = new FileStreamResult(resultPDFStream, "application/pdf"); fileStreamResult.FileDownloadName = "OutOfStock_" + "" + ".pdf"; return(fileStreamResult); } else { return(NotFound()); } } catch (Exception ex) { return(StatusCode(500, ex)); } }
//adding stock to the instock list any time a movie is returned public static void UpdateStockAdd(Movie yourMovie) { if (!InStock.Contains(yourMovie)) { InStock.Add(yourMovie); yourMovie.Copies++; } else if (yourMovie.Copies == 0) { OutOfStock.Remove(yourMovie); yourMovie.Copies++; } else { yourMovie.Copies++; } }
//removing stock from the instock list any time a loan is made public static void UpdateStockRemove(Movie yourMovie) { //if the list out of stock does not contain your movie then add it and take one copie away from stock if (!OutOfStock.Contains(yourMovie)) { OutOfStock.Add(yourMovie); yourMovie.Copies--; } else if (yourMovie.Copies == 1) // once your copies is once remove the movie from instock and take a copie away { InStock.Remove(yourMovie); yourMovie.Copies--; } else //take a copy away any time a loan is added { yourMovie.Copies--; } }