public LastPurchaseReceivedModel getLastReceiptInfoByShortItemNo(int shortItemNo)
        {
            Mapper.CreateMap<F43071, LastPurchaseReceivedModel>();
            objF43071 = new F43071Repository();

            F43071 objEntity = (from r in objF43071.GetAll()
                                where r.ShortItemNo.Equals(shortItemNo)
                                select r).OrderByDescending(x=>x.LastDocDate).FirstOrDefault();

            LastPurchaseReceivedModel resultModel = new LastPurchaseReceivedModel();

            resultModel = Mapper.Map(objEntity, resultModel);

            return resultModel;
        }
        public IList<ContractPricingModel> getContractPricingData(IList<string> ItemList)
        {
            IList<ContractPricingModel> objResult = new List<ContractPricingModel>();

            int? priVal = 1;
            var abPriorityVal = objABPriority.GetSingle(ab => ab.Priority == priVal);

            foreach (string item in ItemList)
            {
                var existingQuery = from r in objResult
                                    where r.ItemNo2nd.Contains(item)
                                    select r;

                if (existingQuery.Count() > 0)
                {
                    objResult.Add(existingQuery.FirstOrDefault());
                }
                else
                {

                    ContractPricingModel cpm = new ContractPricingModel();

                    F41010Model itemModel = _F41010Manager.GetDataByItemNo2nd(item);

                    F58ZX003 ABInfo = objABPrice.GetSingle(x => x.APLITM.Trim().Equals(item) && x.APAN8.Equals(abPriorityVal.AddressNo));

                    var DuplicateItem = from d in ItemList.ToList()
                                        where d.Equals(item)
                                        select d;
                    if (DuplicateItem.Count() > 1)
                        cpm.dupicateStatus = "Duplicate " + item;

                    if (ABInfo != null)
                    {
                        cpm.HQABCur = ABInfo.APCRCD;
                        cpm.ABPrice = (decimal)ABInfo.APUPRC;
                    }

                    if (itemModel != null)
                    {
                        cpm.ItemNo2nd = itemModel.ItemNo2nd;
                        cpm.Desc1 = itemModel.Desc1;

                        cpm.PricingList = generatePricing(itemModel.ItemNo2nd).ToList();
                        cpm.WHQtyList = generateWHQty(itemModel.ItemNo2nd).ToList();

                        cpm.SRQty = _F41021Manager.getSRQty_SumByItemShortItemNo(itemModel.ShortItemNo);
                        cpm.OpenPOQty = _purchaseManager.getOpenPOQty_SumByShortItemNo(itemModel.ShortItemNo);

                        cpm.OpenPOATP = cpm.OpenPOQty -
                            (
                                _purchaseManager.getPurIndentQty_SumByItemShortItemNo(itemModel.ShortItemNo) +
                                _F41021Manager.getInspQty_SumByItemShortItemNo(itemModel.ShortItemNo) +
                                _F41021Manager.getInspATPQty_SumByItemShortItemNo(itemModel.ShortItemNo) +
                                _F41021Manager.getGitQty_SumByItemShortItemNo(itemModel.ShortItemNo)
                            );

                        cpm.CustomerCount = _salesManager.getCustomerCountByShortItemNo(itemModel.ShortItemNo);

                        cpm.CurYearQty = _salesManager.getQty_sumByYearAndShortItemNo(DateTime.Today.Year, itemModel.ShortItemNo);
                        cpm.Year1Qty = _salesManager.getQty_sumByYearAndShortItemNo(DateTime.Today.Year - 1, itemModel.ShortItemNo);
                        cpm.Year2Qty = _salesManager.getQty_sumByYearAndShortItemNo(DateTime.Today.Year - 2, itemModel.ShortItemNo);
                        cpm.Year3Qty = _salesManager.getQty_sumByYearAndShortItemNo(DateTime.Today.Year - 3, itemModel.ShortItemNo);

                        LastPurchaseReceivedModel LR = new LastPurchaseReceivedModel();
                        LR =_purchaseManager.getLastReceiptInfoByShortItemNo(itemModel.ShortItemNo);

                        if (LR != null)
                        {
                            cpm.LastReceiptCurr = LR.LastReceiptCurr;
                            cpm.LastReceiptDate = LR.LastDocDate.Date;
                            cpm.LastReceiptPrice = LR.LastReceiptPrice;
                        }
                        else
                        {
                            cpm.LastReceiptCurr = "";
                            cpm.LastReceiptPrice = 0;
                            cpm.LastReceiptDate = null;
                        }

                    }
                    else
                    {
                        cpm.ItemNo2nd = item;
                        cpm.dupicateStatus = "Item not exist, Please verify";
                        cpm.Desc1 = "N/A in Item Master";
                        cpm.PricingList = null;
                        cpm.WHQtyList = null;
                        cpm.SRQty = 0;
                        cpm.OpenPOQty = 0;
                        cpm.OpenPOATP = 0;
                        cpm.CustomerCount = 0;
                        cpm.CurYearQty = 0;
                        cpm.Year1Qty = 0;
                        cpm.Year2Qty = 0;
                        cpm.Year3Qty = 0;
                        cpm.LocalPlanCode = "";
                        cpm.UnitPerCarton = 0;
                        cpm.LastReceiptCurr = "";
                        cpm.LastReceiptPrice = 0;
                        cpm.LastReceiptDate = null;
                    }

                    objResult.Add(cpm);
                } //if condition
            }//foreach

            return objResult;
        }