public JsonResult GetPO(int PurchaseHeaderId) { //make the result variabel to return a value var result = string.Empty; //Get The PO Header var PurchaseHeader = _balimoonBMIContext.PurchasesHeader.Where(a => a.PurchaseHeaderId == PurchaseHeaderId).SingleOrDefault(); //Join The Header and Line To Get Details var join = (from header in _balimoonBMIContext.PurchasesHeader join line in _balimoonBMIContext.PurchasesLine on header.PurchaseHeaderId equals line.PurchaseHeaderId into details from line in details.DefaultIfEmpty() join Locations in _balimoonBMIContext.Locations on line.LocationCode equals Locations.LocationCode into LocationDetails from Locations in LocationDetails.DefaultIfEmpty() join DimensionValue in _balimoonBMIContext.DimensionValue on line.ShortcutDimension1Code equals DimensionValue.DimensionValueCode into DimensionDetails from DimensionValue in DimensionDetails.DefaultIfEmpty() where header.PurchaseHeaderId == PurchaseHeaderId select new { PurchaseHeaderId = header.PurchaseHeaderId, DocumentNo = line.DocumentNo, LocationCode = line.LocationCode, LocationName = Locations.LocationName, PostingGroup = line.PostingGroup, RefPRNo = header.RefPrno, //Nomor PR ada di 2 kolom, kolom RefPrno dan QuoteNo DimensionValue = DimensionValue.DimensionValueName, AssignedUserId = header.AssignedUserId, CreatedBy = header.CreatedBy, OrderDate = header.OrderDate, ExpectedReceiptDate = header.ExpectedReceiptDate, VendorName = header.PaytoName, Amount = header.Amount, AmountIncludingVAT = header.AmountIncludingVat }).FirstOrDefault(); result = JsonConvert.SerializeObject(join, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); //return the result value return(Json(result)); }