public ActionResult _FilterPost(SaleDeliveryOrderCancelFilterViewModel vm)
        {
            List <SaleDeliveryOrderCancelLineViewModel> temp = _SaleDeliveryOrderCancelLineService.GetSaleDeliveryOrderLineForMultiSelect(vm).ToList();
            SaleDeliveryOrderCancelMasterDetailModel    svm  = new SaleDeliveryOrderCancelMasterDetailModel();

            svm.SaleDeliveryOrderCancelViewModels = temp;
            return(PartialView("_Results", svm));
        }
        public ActionResult _ForOrder(int id, int sid)
        {
            SaleDeliveryOrderCancelFilterViewModel vm = new SaleDeliveryOrderCancelFilterViewModel();

            vm.SaleDeliveryOrderCancelHeaderId = id;
            vm.BuyerId = sid;
            return(PartialView("_Filters", vm));
        }
        public IEnumerable <SaleDeliveryOrderCancelLineViewModel> GetSaleDeliveryOrderLineForMultiSelect(SaleDeliveryOrderCancelFilterViewModel svm)
        {
            string[] ProductIdArr = null;
            if (!string.IsNullOrEmpty(svm.ProductId))
            {
                ProductIdArr = svm.ProductId.Split(",".ToCharArray());
            }
            else
            {
                ProductIdArr = new string[] { "NA" };
            }

            string[] SaleOrderIdArr = null;
            if (!string.IsNullOrEmpty(svm.SaleDeliveryOrderId))
            {
                SaleOrderIdArr = svm.SaleDeliveryOrderId.Split(",".ToCharArray());
            }
            else
            {
                SaleOrderIdArr = new string[] { "NA" };
            }

            string[] ProductGroupIdArr = null;
            if (!string.IsNullOrEmpty(svm.ProductGroupId))
            {
                ProductGroupIdArr = svm.ProductGroupId.Split(",".ToCharArray());
            }
            else
            {
                ProductGroupIdArr = new string[] { "NA" };
            }

            var temp = (from p in db.ViewSaleDeliveryOrderBalance
                        join sol in db.SaleOrderLine on p.SaleOrderLineId equals sol.SaleOrderLineId
                        join product in db.Product on sol.ProductId equals product.ProductId into table2
                        from tab2 in table2.DefaultIfEmpty()
                        join t in db.SaleDeliveryOrderLine on p.SaleDeliveryOrderLineId equals t.SaleDeliveryOrderLineId into table1
                        from tab1 in table1.DefaultIfEmpty()
                        join t2 in db.SaleDeliveryOrderHeader on tab1.SaleDeliveryOrderHeaderId equals t2.SaleDeliveryOrderHeaderId
                        where (string.IsNullOrEmpty(svm.ProductId) ? 1 == 1 : ProductIdArr.Contains(sol.ProductId.ToString())) &&
                        (svm.BuyerId == 0 ? 1 == 1 : p.BuyerId == svm.BuyerId) &&
                        (string.IsNullOrEmpty(svm.SaleDeliveryOrderId) ? 1 == 1 : SaleOrderIdArr.Contains(p.SaleDeliveryOrderHeaderId.ToString())) &&
                        (string.IsNullOrEmpty(svm.ProductGroupId) ? 1 == 1 : ProductGroupIdArr.Contains(tab2.ProductGroupId.ToString())) &&
                        p.BalanceQty > 0 && p.BuyerId == svm.BuyerId
                        orderby t2.DocDate, t2.DocNo, tab1.Sr
                        select new SaleDeliveryOrderCancelLineViewModel
            {
                BalanceQty = p.BalanceQty,
                Qty = 0,
                SaleDeliveryOrderDocNo = p.SaleDeliveryOrderNo,
                ProductName = tab2.ProductName,
                ProductId = sol.ProductId,
                SaleDeliveryOrderCancelHeaderId = svm.SaleDeliveryOrderCancelHeaderId,
                SaleDeliveryOrderLineId = p.SaleDeliveryOrderLineId,
                unitDecimalPlaces = tab2.Unit.DecimalPlaces,
                DealunitDecimalPlaces = sol.DealUnit.DecimalPlaces,
            }
                        );

            return(temp);
        }