public string BindingSo()
        {
            List <Context.SalesOrder> items = RepoSalesOrder.FindAllAdminDispatched();

            List <AdminUangJalanIndex> ListModel = new List <AdminUangJalanIndex>();

            foreach (Context.SalesOrder item in items)
            {
                if (item.SalesOrderKontrakId.HasValue)
                {
                    var data = item.SalesOrderKontrak.SalesOrderKontrakListSo.Where(p => p.IsProses && p.Status == "dispatched").GroupBy(d => new { d.IdDataTruck, d.Driver1Id, d.Status, d.Urutan }).Select(grp => grp.ToList());
                    foreach (var itemGroup in data.ToList())
                    {
                        ListModel.Add(new AdminUangJalanIndex(item, itemGroup));
                        foreach (var itemKontrakPerOrder in itemGroup.OrderBy(t => t.MuatDate).ToList())
                        {
                            ListModel.Add(new AdminUangJalanIndex(item, itemGroup.Where(d => d.Id == itemKontrakPerOrder.Id).ToList()));
                        }
                    }
                }
                else
                {
                    ListModel.Add(new AdminUangJalanIndex(item));
                }
            }

            return(new JavaScriptSerializer().Serialize(new { total = items.Count, data = ListModel }));
        }