public void UpdateJobReceiveQtyOnQA(JobReceiveQALineViewModel QaLine, DateTime DocDate, ref ApplicationDbContext Context)
        {
            var temp = (from p in Context.JobReceiveQALine.AsNoTracking()
                        where p.JobReceiveLineId == QaLine.JobReceiveLineId && p.JobReceiveQALineId != QaLine.JobReceiveQALineId
                        join t in Context.JobReceiveQAHeader on p.JobReceiveQAHeaderId equals t.JobReceiveQAHeaderId
                        select new
            {
                FailQty = p.FailQty,
                Date = t.DocDate,
                FailDealQty = p.FailDealQty,
                Weight = p.Weight,
                Penalty = p.PenaltyAmt,
            }).ToList();

            JobReceiveLineStatus Status = Context.JobReceiveLineStatus.Find(QaLine.JobReceiveLineId);

            if (temp.Count == 0)
            {
                Status.QaFailQty     = QaLine.FailQty;
                Status.QaDate        = DocDate;
                Status.QaFailDealQty = QaLine.FailDealQty;
                Status.QaWeight      = QaLine.Weight;
                Status.QaPenalty     = QaLine.PenaltyAmt;
            }
            else
            {
                Status.QaDate        = DocDate;
                Status.QaFailQty     = temp.Sum(m => m.FailQty) + (QaLine.FailQty);
                Status.QaFailDealQty = temp.Sum(m => m.FailDealQty) + QaLine.FailDealQty;
                Status.QaWeight      = temp.Sum(m => m.Weight) + QaLine.Weight;
                Status.QaPenalty     = temp.Sum(m => m.Penalty) + QaLine.PenaltyAmt;
            }

            Status.ObjectState = Model.ObjectState.Modified;
            Context.JobReceiveLineStatus.Add(Status);
        }
        //UpdateQty on ReceiveQA
        public void UpdateJobReceiveQtyQAMultiple(List <JobReceiveQALineViewModel> Qty, DateTime DocDate, ref ApplicationDbContext Context)
        {
            int[] Ids2 = null;
            Ids2 = Qty.Select(m => m.JobReceiveLineId).ToArray();

            var LineStatus = (from p in Context.JobReceiveLineStatus
                              where (Ids2).Contains(p.JobReceiveLineId.Value)
                              select p).ToList();

            foreach (var item in LineStatus)
            {
                JobReceiveQALineViewModel recQaline = Qty.Where(m => m.JobReceiveLineId == item.JobReceiveLineId).FirstOrDefault();

                item.QaDate        = DocDate;
                item.QaFailQty     = (item.QaFailQty ?? 0) + recQaline.FailQty;
                item.QaFailDealQty = (item.QaFailDealQty ?? 0) + recQaline.FailDealQty;
                item.QaWeight      = (item.QaWeight ?? 0) + (recQaline == null ? 0 : recQaline.Weight);
                item.QaPenalty     = (item.QaPenalty ?? 0) + (recQaline == null ? 0 : recQaline.PenaltyAmt);

                item.ObjectState = Model.ObjectState.Modified;
                //Context.JobReceiveLineStatus.Add(item);
            }
            Context.JobReceiveLineStatus.AddRange(LineStatus);
        }