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));
        }