public bool ValidationTask(string MONumber, string ItemCode, string LotNo, string User) { OracleHeader oracleH = entDebagging.Resolve <OracleHeader>().Get(x => x.MoNumber == MONumber); TaskTimbang taskTimbang = entDebagging.Resolve <TaskTimbang>().Get(x => x.OracleHeaderId == oracleH.OracleHeaderId && x.ItemCode == ItemCode && x.LotNo == LotNo); //Update User & Terminal return(false); }
public static string GetValue(string GSCode) { OanTechHelper entCommon = new OanTechHelper(MyEntities.Common); GeneralSetting value = entCommon.Resolve <GeneralSetting>().Get(x => x.GSCode == GSCode); return(value.GSValue.ToString()); }
public void PushDataFromOracle(string MONumber) { List <XSHP_TIMBANG> dataHeader = GetListMOHeader(MONumber); foreach (XSHP_TIMBANG x in dataHeader) { OracleHeader oracleH = new OracleHeader(); oracleH.MOHeaderId = x.MO_HEADER_ID; oracleH.MOLineId = x.MO_LINE_ID; oracleH.MoNumber = x.MO_NUMBER; oracleH.LineNumber = x.LINE_NUMBER; oracleH.FromSubInventoryCode = x.FROM_SUBINVENTORY_CODE; oracleH.ToSubInventoryCode = x.FROM_SUBINVENTORY_CODE; oracleH.DateRequired = x.DATE_REQUIRED; oracleH.SourceType = x.SOURCE_TYPE; oracleH.DocNumber = x.DOC_NUMBER; oracleH.Customer = x.SHIP_TO; oracleH.ShipTo = x.SHIP_TO; oracleH.Requestor = x.REQUESTOR; oracleH.ItemCode = x.ITEM_CODE; oracleH.ItemDesc = x.ITEM_DESC; oracleH.ItemDescAlias = x.ITEM_DESC_ALIAS; oracleH.UOM = x.UOM; oracleH.Qty = x.QTY; oracleH.UrutanTuang = x.URUTAN_TUANG; oracleH.QtyPerCharge = x.QTY_PER_CHARGE; oracleH.Activity = x.ACTIVITY; oracleH.CombineL1 = x.COMBINE_LV1; oracleH.CombineL2 = x.COMBINE_LV2; oracleH.PackingSize = x.PACKING_SIZE; oracleH.SelfLife = x.SELF_LIFE; oracleH.IsTimbang = x.IS_TIMBANG; oracleH.IsClosedCode = x.IS_CLOSED_CODE; oracleH.IsAllergen = x.IS_ALLERGEN; List <XSHP_TIMBANG_ALOKASI> dataDetail = GetListMoAllocation(x.MO_LINE_ID); foreach (XSHP_TIMBANG_ALOKASI y in dataDetail) { OracleDetail oracleD = new OracleDetail(); oracleD.MOHeaderId = y.MO_HEADER_ID; oracleD.MOLineId = y.MO_LINE_ID; oracleD.MONumber = MONumber; oracleD.ItemCode = y.ITEM_CODE; oracleD.LotNo = y.LOT_NO; oracleD.LotQty = y.LOT_QTY; oracleD.ExpirationDate = y.EXPIRATION_DATE; oracleH.OracleDetails.Add(oracleD); } entWMS.Resolve <OracleHeader>().Add(oracleH); } entWMS.Save(); //Update Oracle Flag nya 1 UpdateOracleStatus(MONumber); }
//ORACLE_1 public List <string> GetListMO() { return(entOracle.Resolve <XSHP_TIMBANG>().GetAll(x => x.IS_PROCESSED == false).Select(x => x.MO_NUMBER).Distinct().ToList()); }
public ViewResult Index(int?page, string filter, string cFilter, string sortKey, string sortDir, string cSortDir) { //DEFAULT if (sortKey == null && sortDir == null) { sortKey = ViewBag.SortKey = "GSCode"; //yang harus diisi sortDir = "ASC"; } //Page page = filter == null ? page : 1; int pageNumber = page ?? 1; int pageSize = 5; //yang harus diisi //NEW OR CURRENT --> FILTER & SORT filter = filter == null ? cFilter : filter; sortDir = sortDir == null ? cSortDir : sortDir; //QUERY var query = from a in ent.Resolve <GeneralSetting>().AsQueryable() //yang harus dibikin select new { GeneralSettingId = a.GeneralSettingId, GSCode = a.GSCode, GSKey = a.GSKey, GSValue = a.GSValue }; //CUSTOM FILTER if (!string.IsNullOrEmpty(filter)) { query = query.Where(x => x.GSCode.Contains(filter) || x.GSValue.Contains(filter)); //yang harus ditentukan } //ORDER BY & TOOGLE SORT DIRECTION query = query.OrderByField(sortKey, sortDir == "ASC" ? true : false); //GET PAGING var pagingResult = query.ToPaging(pageNumber, pageSize); //Map to VIEW MODEL GeneralSettingViewPaging pagingList = new GeneralSettingViewPaging(); pagingList.Paging = pagingResult; pagingList.Data = new List <GeneralSettingViewModel>(); foreach (var item in pagingResult) { GeneralSettingViewModel data = new GeneralSettingViewModel(); data.GeneralSettingId = item.GeneralSettingId; data.GSCode = item.GSCode; data.GSKey = item.GSKey; data.GSValue = item.GSValue; pagingList.Data.Add(data); } //Ga usah dirubah ViewBag.cSortDir = sortDir; //buat jaga kondisi sort ViewBag.SortDir = sortDir == "ASC" ? "DESC" : "ASC"; //buat bolak balikin (Toogle) ViewBag.SortKey = sortKey; ViewBag.cFilter = filter; ViewBag.FormName = "General Setting"; return(View(pagingList)); }
public ViewResult DataTable(int?page, string filter, string cFilter, string sortKey, string sortDir, string cSortDir) { ////PAGING DENGAN 1 Model ////Default Sort //if (sortKey == null && sortDir == null) //{ // sortKey = ViewBag.SortKey = "RoleName"; // sortDir = "ASC"; //} ////Page, Filter & Sort Dir //page = filter == null ? page : 1; //int pageNumber = page ?? 1; //int pageSize = 5; //filter = filter == null ? cFilter : filter; //sortDir = sortDir == null ? cSortDir : sortDir; ////Query //var dataResult = ent.Resolve<Role>().GetQueryableQuery(); //if (!String.IsNullOrEmpty(filter)) //{ // dataResult = ent.Resolve<Role>().GetQueryableQuery().Where(x => x.RoleName.Contains(filter)); //} ////Order by //dataResult = dataResult.OrderByField(sortKey, sortDir == "ASC" ? true : false); //ViewBag.cSortDir = sortDir; //buat jaga kondisi sort //ViewBag.SortDir = sortDir == "ASC" ? "DESC" : "ASC"; //buat bolak balikin (Toogle) //ViewBag.SortKey = sortKey; //ViewBag.cFilter = filter; //return View(dataResult.ToPaging(pageNumber, pageSize)); //DEFAULT if (sortKey == null && sortDir == null) { sortKey = ViewBag.SortKey = "RoleName"; sortDir = "ASC"; } //Page page = filter == null ? page : 1; int pageNumber = page ?? 1; int pageSize = 5; //NEW OR CURRENT --> FILTER & SORT filter = filter == null ? cFilter : filter; sortDir = sortDir == null ? cSortDir : sortDir; //QUERY var query = from a in ent.Resolve <Role>().AsQueryable() select new { RoleId = a.RoleId, RoleName = a.RoleName, Date = a.DtCrt }; //CUSTOM FILTER if (!string.IsNullOrEmpty(filter)) { query = query.Where(x => x.RoleName.Contains(filter)); } //ORDER BY & TOOGLE SORT DIRECTION query = query.OrderByField(sortKey, sortDir == "ASC" ? true : false); //GET PAGING var pagingResult = query.ToPaging(pageNumber, pageSize); //Map to VIEW MODEL UserRoleViewPaging pagingList = new UserRoleViewPaging(); pagingList.Paging = pagingResult; pagingList.Data = new List <UserRoleViewModel>(); //pagingList.Data = pagingResult.Cast<UserRoleViewModel>().ToList(); //var xx = pagingResult.Select(s => new { RoleId = s.RoleId, RoleName = s.RoleName }).ToList(); //List<object> data = pagingResult.Cast<object>().ToList(); //var listFiles = new List<UserRoleViewModel>(); //listFiles = new BindingList<UserRoleViewModel>(pagingResult); ////pagingList.Data = data.ToList(); ////pagingList.Data = new List<UserRoleViewModel>(); ////EmployeeViewItem employeeViewItem = Mapper.Map<Employee, Employee>(employee); foreach (var item in pagingResult) { UserRoleViewModel data = new UserRoleViewModel(); data.RoleId = item.RoleId; data.FirstName = item.RoleName; data.LastName = item.RoleName; data.BirthDate = item.Date; data.Email = item.RoleName; pagingList.Data.Add(data); } ViewBag.cSortDir = sortDir; //buat jaga kondisi sort ViewBag.SortDir = sortDir == "ASC" ? "DESC" : "ASC"; //buat bolak balikin (Toogle) ViewBag.SortKey = sortKey; ViewBag.cFilter = filter; return(View(pagingList)); //var queryPaged = query.ToPaging(pageNumber, pageSize); //List<UserRoleViewModel> listData = new List<UserRoleViewModel>(); //foreach (var item in queryPaged) //{ // UserRoleViewModel data = new UserRoleViewModel(); // data.RoleId = item.RoleId; // data.FirstName = item.RoleName; // data.LastName = item.RoleName; // data.BirthDate = item.Date; // data.Email = item.RoleName; // listData.Add(data); //} //return View(queryPaged); //var vm = Mapper.Map<IEnumerable<queryPaged>, IEnumerable<UserRoleViewModel>>(queryPaged.ToArray()); //datanya.listDataViewModel = query.ToPaging(pageNumber, pageSize).ToList(); //ViewBag.cSortDir = sortDir; //buat jaga kondisi sort //ViewBag.SortDir = sortDir == "ASC" ? "DESC" : "ASC"; //buat bolak balikin (Toogle) //ViewBag.SortKey = sortKey; //ViewBag.cFilter = filter; //return View(query.ToPaging(pageNumber, pageSize)); //query = query.OrderByField(sortKey, sortDir == "ASC" ? true : false); //List<PagingUserViewModel> listData = new List<PagingUserViewModel>(); //var result = query.ToPaging(pageNumber, pageSize) //PagingUserViewModel data = null; //foreach (var item in result) //{ // data = new PagingUserViewModel(); // data.RoleId = int.Parse(item.RoleId.ToString()); // data.FirstName = item.FirstName.ToString(); // data.LastName = item.LastName.ToString(); // data.BirthDate = DateTime.Parse(item.BirthDate.ToString()); // data.Email = item.Email.ToString(); // listData.Add(data); //} //return View(listData); }
//View untuk melihat Daftar MO, bisa pilih set prioritas public List <string> GetListMO() { //bisa dimodifikasi kebutuhan view nya di depan hanya lihat MO atau yg lain return(entPreparation.Resolve <OracleHeader>().GetAll(x => x.IsProcessed == false).Select(x => x.MoNumber).Distinct().ToList()); }
public List <Role> GetUserRoleList() { List <Role> result = entAccountManagement.Resolve <Role>().GetAll().OrderBy(x => x.RoleName).ToList(); return(result); }
//Function private List <Role> GetUserRoleList() { List <Role> result = ent.Resolve <Role>().GetAll().OrderBy(x => x.RoleName).ToList(); return(result); }
public ViewResult Index(int?page, string filter, string cFilter, string sortKey, string sortDir, string cSortDir) { //DEFAULT if (sortKey == null && sortDir == null) { sortKey = ViewBag.SortKey = "TerminalId"; //yang harus diisi sortDir = "ASC"; } //Page page = filter == null ? page : 1; int pageNumber = page ?? 1; int pageSize = 5; //yang harus diisi //NEW OR CURRENT --> FILTER & SORT filter = filter == null ? cFilter : filter; sortDir = sortDir == null ? cSortDir : sortDir; //QUERY var query = from a in ent.Resolve <TerminalConfiguration>().AsQueryable() //yang harus dibikin select new { TerminalId = a.TerminalId, TerminalCategory = a.TerminalCategory, TerminalGroup = a.TerminalGroup, TerminalDescription = a.TerminalDescription, TerminalLocation = a.TerminalLocation, IsAllergen = a.IsAllergen, IsActive = a.IsActive }; //CUSTOM FILTER if (!string.IsNullOrEmpty(filter)) { query = query.Where(x => x.TerminalCategory.Contains(filter) || x.TerminalLocation.Contains(filter)); //yang harus ditentukan } //ORDER BY & TOOGLE SORT DIRECTION query = query.OrderByField(sortKey, sortDir == "ASC" ? true : false); //GET PAGING var pagingResult = query.ToPaging(pageNumber, pageSize); //Map to VIEW MODEL TerminalConfigurationViewPaging pagingList = new TerminalConfigurationViewPaging(); pagingList.Paging = pagingResult; pagingList.Data = new List <TerminalConfigurationViewModel>(); foreach (var item in pagingResult) { TerminalConfigurationViewModel data = new TerminalConfigurationViewModel(); data.TerminalId = item.TerminalId; data.TerminalCategory = item.TerminalCategory; data.TerminalDescription = item.TerminalDescription; data.TerminalGroup = item.TerminalGroup; data.TerminalLocation = item.TerminalLocation; data.IsAllergen = item.IsAllergen; data.IsActive = item.IsActive; pagingList.Data.Add(data); } //Ga usah dirubah ViewBag.cSortDir = sortDir; //buat jaga kondisi sort ViewBag.SortDir = sortDir == "ASC" ? "DESC" : "ASC"; //buat bolak balikin (Toogle) ViewBag.SortKey = sortKey; ViewBag.cFilter = filter; ViewBag.FormName = "Terminal Configuration"; return(View(pagingList)); }
public List <GeneralSetting> GetListTerminalId() { List <GeneralSetting> result = entTerminal.Resolve <GeneralSetting>().GetAll(x => x.GSCode == "TERMINAL_ID").ToList(); return(result); }
public void RequestTask(string TerminalId, int UserId) { Int64 MOQueueId = 0; string MONumber = ""; //BELUM!! Seharusnya digrouping terlebih dahulu terhadap Nomor MO, dengan default by : First In First Out DAN Skala Prioritas MO, tetapi harus selesai per TASK //Ketika Processed jadi TaskTimbang, masukin table QueueMO isinya: MONumber, IsPriority, Sequence, status. //1. Pertama cari yang on progress (status = "EXE") MOQueue moOnProgress = entTerminal.Resolve <MOQueue>().Get(x => x.Status == "EXE"); //2. Jika ada yg on Progress maka selesaikan if (moOnProgress != null) { MOQueueId = moOnProgress.MOQueueId; MONumber = moOnProgress.MoNumber; } else { //3. Jika ga ada yang sedang dikerjakan, ambil yang prioritas utama, urutan berdasarkan MOQueueId MOQueue moPriority = entTerminal.Resolve <MOQueue>().GetAll(x => x.Status == "NEW" && x.IsPriority == true).OrderBy(x => x.MOQueueId).FirstOrDefault(); if (moPriority != null) { MOQueueId = moPriority.MOQueueId; MONumber = moPriority.MoNumber; } else { //4. Jika ga ada yang prioritas, ambil MO paling pertama masuk FIFO, berdasarkan urutan Execute Date & MOQueueId MOQueue moFifo = entTerminal.Resolve <MOQueue>().GetAll(x => x.Status == "NEW").OrderBy(x => x.ExecuteDate).ThenBy(x => x.MOQueueId).FirstOrDefault(); if (moFifo != null) { MOQueueId = moFifo.MOQueueId; MONumber = moFifo.MoNumber; } else { //Tidak ada MO yang harus dikerjakan } } } if (MONumber != "") { //IsProcessed True artinya sudah dibentuk TaskTimbang List <Int64> listOracleHId = entTerminal.Resolve <OracleHeader>().GetAll(x => x.MoNumber == MONumber && x.IsProcessed == true).Select(x => x.OracleHeaderId).ToList(); //Cek dulu apakah semua Task Timbang untuk MO Number ini sudah diproses semua atau belum, jika sudah semua TMB atau COM, update MOQueue status jadi COM int taskPending = entTerminal.Resolve <TaskTimbang>().GetAll(x => listOracleHId.Contains(x.OracleHeaderId) && x.Status.Contains("PREP")).Count(); if (taskPending > 0) { //Get Semua Data Terminal Configuration Terlebih dahulu List <TerminalConfiguration> listAllTerminal = entTerminal.Resolve <TerminalConfiguration>().GetAll(); //Terminal Requester TerminalConfiguration terminal = listAllTerminal.Where(x => x.TerminalId == TerminalId).FirstOrDefault(); if (terminal.IsActive) { //Get (Task Allergen / Non Allergen) & sesuai dengan type timbangan (B / K) var listItemPeMO = (from a in entTerminal.Resolve <TaskTimbang>().AsQueryable() .Where(x => listOracleHId.Contains(x.OracleHeaderId) && x.IsAllergen == terminal.IsAllergen && x.Type == terminal.TerminalCategory) group a by new { a.ItemCode } into g orderby g.Count(x => x.ItemCode != null) descending select new { ItemCode = g.Key.ItemCode, Qty = g.Count(x => x.ItemCode != null), TerminalAssign = g.Count(x => x.TerminalId != null) }).ToList(); //var listItemPeMO = (from a in entTerminal.Resolve<TaskTimbang>().AsQueryable() // .Where(x => listOracleHId.Contains(x.OracleHeaderId) && x.Status == "PREP" && x.IsAllergen == terminal.IsAllergen && x.Type == terminal.TerminalCategory) // group a by a.ItemCode into g // let qty = g.Count() // orderby qty descending // select new { ItemCode = g.Key, Qty = qty }).ToList(); //jika sudah tidak ada Item lain yang kosong, maka boleh cross Item bool allowCrossItem = listItemPeMO.Where(x => x.TerminalAssign == 0).Count() > 0 ? false : true; //Bagi Task foreach (var item in listItemPeMO) { //Daftar Terminal yang sedang Execute Item Code ini List <TaskTimbang> listTaskTimbangPerItem = entTerminal.Resolve <TaskTimbang>().GetAll(x => x.ItemCode == item.ItemCode.ToString() && x.Type == terminal.TerminalCategory); List <string> listTerminalActive = listTaskTimbangPerItem.Where(x => x.ItemCode == item.ItemCode.ToString() && x.TerminalId != null && x.Type == terminal.TerminalCategory && x.Status == "TMB").Select(x => x.TerminalId).Distinct().ToList(); List <int?> terminalGroupActive = listAllTerminal.Where(x => listTerminalActive.Contains(x.TerminalId)).Select(x => x.TerminalGroup).Distinct().ToList(); int taskLeft = listTaskTimbangPerItem.Where(x => x.ItemCode == item.ItemCode.ToString() && x.TerminalId == null && x.Type == terminal.TerminalCategory && x.Status == "PREP").Count(); if (taskLeft > 0 && (terminalGroupActive.Contains(terminal.TerminalGroup) || listTerminalActive.Count == 0 || allowCrossItem)) { //Masih ada Item tersebut yang belum ditimbang, kasi task yang sama karena 1 group //kasi task sejumlah settingan, perhitungkan juga sisa tasknya jika < n%, kasi semua langsung int taskTimbangCount = int.Parse(GS.GetValue("TASK_TIMBANG_COUNT")); decimal percentage = ((Convert.ToDecimal(taskLeft) - Convert.ToDecimal(taskTimbangCount)) / Convert.ToDecimal(taskTimbangCount) * 100); List <Int64> taskIdToAssign = new List <Int64>(); if (percentage < decimal.Parse(GS.GetValue("TASK_LEFT_PERCENTAGE"))) { //Set semua TASK sesuai taskLeft taskIdToAssign = listTaskTimbangPerItem.Where(x => x.ItemCode == item.ItemCode.ToString() && x.TerminalId == null && x.Status == "PREP").Select(x => x.TaskTimbangId).ToList(); } else { //Set jumlah TASK sesuai taskTimbangCount taskIdToAssign = listTaskTimbangPerItem.Where(x => x.ItemCode == item.ItemCode.ToString() && x.TerminalId == null && x.Status == "PREP").OrderBy(x => x.Seq).Take(taskTimbangCount).Select(x => x.TaskTimbangId).ToList(); } //Update TaskTimbang, assign to Terminal entTerminal.StartTransaction(); //update Status MOQueue jadi EXEcute MOQueue queue = entTerminal.Resolve <MOQueue>().Get(x => x.MOQueueId == MOQueueId); queue.Status = "EXE"; //Assign Task to Terminal Timbang List <TaskTimbang> taskTimbangToAssign = entTerminal.Resolve <TaskTimbang>().GetAll(x => taskIdToAssign.Contains(x.TaskTimbangId)); DateTime executeDate = DateTime.Now; taskTimbangToAssign.ForEach(x => { x.TerminalId = terminal.TerminalId; x.UserId = UserId; x.ExecuteDate = executeDate; x.Status = "TMB"; }); entTerminal.Save(TransactionAttribute.Commit); break; } } } else { //ERROR : Terminal Tidak Active } } else { entTerminal.StartTransaction(); //update Status MOQueue jadi EXEcute MOQueue queue = entTerminal.Resolve <MOQueue>().Get(x => x.MOQueueId == MOQueueId); queue.Status = "COM"; entTerminal.Save(TransactionAttribute.Commit); } } }