public async Task <JsonResult> IndexJson(ExpectedReceiptFilterViewModels request, bool?Planned, string StatusCode)
        {
            var helper = new GoodsInDataTableSearchHelper();
            var result = await helper.SearchFunction(request, true);

            var resultList = (IEnumerable <ExpectedReceiptViewModel.ExpectedReceipt>)result.filteredList;

            var data = resultList.Select(x => new
            {
                Actions = "<div class='btn-group' style='display:flex;'>" +
                          "<a class='btn btn-primary' href='#'><i class='fa fa-gear fa-fw'></i> Action</a>" +
                          "<a class='btn btn-primary dropdown-toggle' data-toggle='dropdown' href='#'>" +
                          "<span class='fa fa-caret-down' title='Toggle dropdown menu'></span>" +
                          "</a>" +
                          "<ul class='dropdown-menu' role='menu'>" +
                          (x.StatusCode.Equals("For Receiving", StringComparison.OrdinalIgnoreCase) ?
                           (x.IsActive ? "<li class='crud' data-id='" + x.Id + "' data-request-url='" + Url.Action("Edit") + "' onclick='btnClicked($(this))'><a>Edit</a></li>" : "") +
                           "<li class='crud' data-id='" + x.Id + "' data-request-url='" + Url.Action("Details") + "' onclick='btnClicked($(this))'><a>Details</a></li>" +
                           (x.IsActive ? "<li class='crud' data-id='" + x.Id + "' data-request-url='" + Url.Action("Delete") + "' onclick='btnClicked($(this))'><a>Delete</a></li>" :
                            "<li class='crud' data-id='" + x.Id + "' data-request-url='" + Url.Action("Enable") + "' onclick='btnClicked($(this))'><a>Enable</a></li>") : "") +

                          (x.StatusCode.Equals("Received", StringComparison.OrdinalIgnoreCase) ?
                           "<li class='crud' data-id='" + x.Id + "' data-request-url='" + Url.Action("Details") + "' onclick='btnClicked($(this))'><a>Details</a></li>" +
                           "<li class='complete' data-tranid='" + x.Id + "' href='javascript:void(0)' onclick='btnCompleted($(this))'><a>Complete</a></li>" : "") +

                          (x.StatusCode.Equals("Completed", StringComparison.OrdinalIgnoreCase) ?
                           "<li class='crud' data-id='" + x.Id + "' data-request-url='" + Url.Action("Details") + "' onclick='btnClicked($(this))'><a>Details</a></li>" : "") +
                          "</ul>" +
                          "</div>",

                ExpectedReceiptDate = x.ExpectedReceiptDate.ToString("MMM. dd, yyyy"),
                GoodsReceivedNumber = x.IsActive ? "<a href='" + Url.Action("Index", "ExpectedReceiptLines", new { x.Id, x.GoodsReceivedNumber, x.StatusCode, x.IsActive }) + "'>" + x.GoodsReceivedNumber + "</a>" : "<a href='" + Url.Action("Index", "ExpectedReceiptLines", new { x.Id, x.GoodsReceivedNumber, x.StatusCode, x.IsActive }) + "'>" + x.GoodsReceivedNumber + "</a>",
                AutoReferenceNumber = x.AutoReferenceNumber,
                ReferenceNumber     = x.ReferenceNumber,
                ReceivedDate        = x.ReceivedDate?.ToString("MMM. dd, yyyy") ?? "",
                ReceivedBy          = x.ReceivedBy,
                StatusCode          = x.StatusCode,
                WarehouseCode       = x.WarehouseCode,
                Address             = x.Address,
                Supplier            = x.Supplier,
                HaulierName         = x.HaulierName,
                Comments            = x.Comments,
                IsActive            = x.IsActive,
            });


            return(Json(new
            {
                draw = request.draw,
                recordsTotal = result.totalResultCount,
                recordsFiltered = result.filteredResultCount,
                data = data
            }));
        }
Esempio n. 2
0
        public async Task <dynamic> SearchFunction(ExpectedReceiptFilterViewModels request, bool IsPlanned)
        {
            var list                = new List <ExpectedReceiptViewModel.ExpectedReceipt>().AsEnumerable();
            var filteredList        = new List <ExpectedReceiptViewModel.ExpectedReceipt>().AsEnumerable();
            int filteredResultCount = 0;
            int totalResultCount    = 0;

            var searchBy = request.search.value?.ToLower() ?? "" ?? "";

            var take = request.length;
            var skip = request.start;

            var orderBy  = "Id";
            var orderDir = true;

            if (request.order != null)
            {
                orderDir = request.order[0].dir.ToLower().Equals("asc");
                orderBy  = request.columns[request.order[0].column].data;
                orderBy  = (orderBy.Equals("actions", StringComparison.OrdinalIgnoreCase) ? "Id" : orderBy) + (orderDir ? "" : " desc");
            }

            DateTime dt;
            DateTime?sDateFrom = null;

            if (DateTime.TryParse(request.from, out dt))
            {
                sDateFrom = Convert.ToDateTime(request.from);
            }
            DateTime?sDateTo = null;

            if (DateTime.TryParse(request.to, out dt))
            {
                sDateTo = Convert.ToDateTime(request.to).AddDays(1);
            }

            var url = "";

            if (request.StatusCode.Equals("Received"))
            {
                url = $"api/GoodsIn/ExpectedReceipt/GetReceived/{request.IsActive}/{_customerId}/";
            }
            else if (request.StatusCode.Equals("Completed"))
            {
                url = $"api/GoodsIn/ExpectedReceipt/GetCompleted/{request.IsActive}/{_customerId}/";
            }
            else if (request.StatusCode.Equals("For Receiving") && IsPlanned)
            {
                url = $"api/GoodsIn/ExpectedReceipt/GetForReceiving/{request.IsActive}/{_customerId}/";
            }
            else if (request.StatusCode.Equals("ALL"))
            {
                url = $"api/GoodsIn/ExpectedReceipt/GetList/{request.IsActive}/{_customerId}/";
            }

            var response = await HttpClientHelper.ApiCall(url, Method.GET);

            if (response.IsSuccessful)
            {
                var result = response.Content;

                list = JsonConvert.DeserializeObject <List <dynamic> >(result).Select(x => new ExpectedReceipt
                {
                    Id                   = x.Id,
                    IsActive             = x.IsActive,
                    WarehouseDescription = x.Warehouse != null ? x.Warehouse.Description : "",
                    ExpectedReceiptDate  = x.ExpectedReceiptDate,
                    GoodsReceivedNumber  = x.GoodsReceivedNumber ?? "",
                    ReferenceNumber      = x.ReferenceNumber != null ? x.ReferenceNumber : "",
                    AutoReferenceNumber  = x.AutoReferenceNumber != null ? x.AutoReferenceNumber : "",
                    //Received = x.Received,
                    Comments      = x.Comments ?? "",
                    Address       = x.Warehouse != null ? x.Warehouse.Address1 : "",
                    WarehouseCode = x.Warehouse != null ? x.Warehouse.Description : "",
                    ReceivedBy    = x.ReceivedBy != null ? x.ReceivedBy : "",
                    ReceivedDate  = x.ReceivedDate,
                    Supplier      = x.Supplier != null ? x.Supplier : "",
                    HaulierName   = x.Haulier != null ? x.Haulier.Name : "",
                    HaulierCode   = x.Haulier != null ? x.Haulier.HaulierCode : "",
                    StatusCode    = x.Status != null ? x.Status.Name : "",
                    Planned       = x.Planned
                }).Where(x => x.Planned == IsPlanned).ToList();

                filteredList = list.Where(x =>
                                          x.ExpectedReceiptDate.ToString("MMM. dd, yyyy").ToLower().Contains(searchBy) ||
                                          x.AutoReferenceNumber.ToLower().Contains(searchBy) ||
                                          x.GoodsReceivedNumber.ToLower().Contains(searchBy) ||
                                          x.ReferenceNumber.ToLower().Contains(searchBy) ||
                                          (x.ReceivedDate?.ToString("MMM. dd, yyyy").ToLower().Contains(searchBy) ?? false) ||
                                          x.ReceivedBy.ToLower().Contains(searchBy) ||
                                          x.StatusCode.ToLower().Contains(searchBy)).OrderBy(orderBy, StringComparison.OrdinalIgnoreCase);
            }

            totalResultCount    = list.Count();
            filteredResultCount = filteredList.Count();
            filteredList        = filteredList.Skip(skip).Take(take);


            return(new { filteredList, filteredResultCount, totalResultCount });
        }