protected void RadDropDownWorksheets_SelectedIndexChanged(object sender, DropDownListEventArgs e) { var id = e.Value.ToSafeInt(); var repo = new WorkLineRepository(); if (repo.Get(a => a.WorksheetId == id).Any()) { lblAlert.Text = "توجه:برای این کاربرگ قبلا تایمینگ وارد شده است"; lblAlert.Visible = true; } else { lblAlert.Text = ""; lblAlert.Visible = false; } RadGrid1.Enabled = true; LoadDT(id); BindGrid(); }
public static string AddRow(string input) { //WID,OperatorID,ProcessID var parts = input.Replace('و', ',').Split(','); var worksheetId = parts[0].ToSafeInt(); var operatorId = parts[1].ToSafeInt(); var processId = parts[2].ToSafeInt(); var workLinerepo = new WorkLineRepository(); var thisWorksheetWorkLines = workLinerepo.Get(a => a.WorksheetId == worksheetId); var prevProcessOfThisWorksheet = thisWorksheetWorkLines.Any() ? thisWorksheetWorkLines.Where(a => a.ProcessId != 999).Max(a => a.ProcessId) : 0; if (prevProcessOfThisWorksheet != 999) { if (thisWorksheetWorkLines != null && thisWorksheetWorkLines.Any()) { if (prevProcessOfThisWorksheet != 0 && prevProcessOfThisWorksheet >= processId) { return("عدم رعایت ترتیب فرآیند" + "- کاربر:" + new UserRepository().GetById(operatorId)?.Username + "- کاربرگ:" + worksheetId); } } } if (HttpContext.Current.Session["worksheetProcesses" + "#" + worksheetId] == null) { var wsheetProcesses = new WorksheetRepository().GetWorksheetProcesses(worksheetId); if (wsheetProcesses == null) { return("کاربرگ ردیف ندارد"); } HttpContext.Current.Session["worksheetProcesses" + "#" + worksheetId] = wsheetProcesses; } var thisWorksheetProcesses = (List <int>)HttpContext.Current.Session["worksheetProcesses" + "#" + worksheetId]; var indexOfPrevProcess = thisWorksheetProcesses.IndexOf(prevProcessOfThisWorksheet); var indexOfNextProcess = indexOfPrevProcess + 1; var nextProcessOfThisWorksheet = thisWorksheetProcesses[indexOfNextProcess]; if (processId != 999 && processId != nextProcessOfThisWorksheet) { return("عدم رعایت ترتیب فرآیند" + "- کاربر:" + new UserRepository().GetById(operatorId)?.Username + "- کاربرگ:" + worksheetId); } var uow = new UnitOfWork(); uow.WorkLines.Create(new Repository.Entity.Domain.WorkLine() { InsertDateTime = DateTime.Now, WorksheetId = worksheetId, OperatorId = operatorId, //ProductId = productId, ProcessId = processId } ); var result = uow.SaveChanges(); if (result.IsSuccess) { HttpContext.Current.Session[worksheetId + "#" + operatorId] = processId; return("OK"); } else { //((Main)Page.Master).SetGeneralMessage("خطا در ذخیره اطلاعات", MessageType.Error); Debuging.Error(result.ResultCode + "," + result.Message + "," + result.Message); return("خطا در اضافه کردن ردیف"); } }
public static string Save(int userId, string date, int id, Repository.Entity.Domain.Worksheet model) { if (model == null) { //((Main)Page.Master).SetGeneralMessage("اطلاعاتی برای ذخیره کردن یافت نشد", MessageType.Error); return("اطلاعاتی برای ذخیره کردن یافت نشد"); } if (!model.WorksheetDetails.Any()) { return("هیچ ردیفی ثبت نشده است"); } //if(model.WorksheetDetails.GroupBy(a=>a.ProductId).Where(a => a.Count() > 1).Count()>0) // return "ردیف با کالای تکراری ثبت شده است"; var uow = new UnitOfWork(); if (model.WorksheetDetails.GroupBy(a => a.ACode).Where(a => a.Count() > 1).Any()) { return("شناسه کالای تکراری در ردیف ها"); } if (id.ToSafeInt() == 0) { var w = new Repository.Entity.Domain.Worksheet(); var insDateTime = model.InsertDateTime; w.Date = Utility.AdjustTimeOfDate(date.ToEnDate()); w.PartNo = model.PartNo; w.WaxNo = model.WaxNo; w.InsertDateTime = insDateTime; w.OperatorId = model.OperatorId; w.ColorId = model.ColorId; w.UserId = userId; w.Status = -1; w.WorksheetDetails = model.WorksheetDetails; w.Desc = model.Desc; uow.Worksheets.Create(w); } else { var tobeEdited = uow.Worksheets.GetById(id.ToSafeInt()); uow.WorksheetDetails.Delete(a => a.WorksheetId == tobeEdited.Id); tobeEdited.UpdateDateTime = DateTime.Now; tobeEdited.Date = Utility.AdjustTimeOfDate(date.ToEnDate()); tobeEdited.OperatorId = model.OperatorId; tobeEdited.UserId = userId; tobeEdited.ColorId = model.ColorId; tobeEdited.PartNo = model.PartNo; tobeEdited.WaxNo = model.WaxNo; tobeEdited.Desc = model.Desc; if (tobeEdited.OperatorId != model.OperatorId) { var workLineRepo = new WorkLineRepository(); if (workLineRepo.Get(a => a.WorksheetId == tobeEdited.Id).Any()) { return("برای این کاربرگ در صف تولید دیتا ثبت شده و اوپراتور آن قابل تغییر نیست"); } } foreach (WorksheetDetail item in model.WorksheetDetails) { uow.WorksheetDetails.Create(new WorksheetDetail() { Status = -1, ProductId = item.ProductId, UpdateDateTime = DateTime.Now, WorksheetId = tobeEdited.Id, ACode = item.ACode }); } } var result = uow.SaveChanges(); if (result.IsSuccess) { //RedirectToWorksheetListActionResultWithMessage(); return("OK"); } else { //((Main)Page.Master).SetGeneralMessage("خطا در ذخیره اطلاعات", MessageType.Error); Debuging.Error(result.ResultCode + "," + result.Message + "," + result.Message); return("خطا در ذخیره اطلاعات"); } }
public static string AddRow(string input, string reworkACodes, string reworkReasons, string reworkDesc, string reworkEsghatMode, string reworkEsghatPrevProcessId) { //WID,OperatorID,ProcessID var parts = input.Replace('و', ',').Split(','); var worksheetId = parts[0].ToSafeInt(); var operatorId = parts[1].ToSafeInt(); var processId = parts[2].Replace("#", "").ToSafeInt(); var workLinerepo = new WorkLineRepository(); var thisWorksheetWorkLines = workLinerepo.Get(a => a.WorksheetId == worksheetId); var prevProcessIsEsghat = thisWorksheetWorkLines.Any() ? thisWorksheetWorkLines.Any(a => a.ProcessId == 1001) : false; if (prevProcessIsEsghat) { return("پس از اسقاط قادر به ثبت فرآیند دیگری نیستید"); } var actualPrevProcess = thisWorksheetWorkLines.Any() ? thisWorksheetWorkLines.OrderByDescending(a => a.Id).FirstOrDefault().ProcessId : 0; //var breforePrevProcessOfThisWorksheet = thisWorksheetWorkLines.Any() ? thisWorksheetWorkLines.Where(a=>a.ProcessId != 999 && a.ProcessId != 1000 && a.ProcessId != 1001 && a.ProcessId != 1002).Max(a => a.ProcessId) : 0; var prevProcessOfThisWorksheet = thisWorksheetWorkLines.Any() ? thisWorksheetWorkLines.Where(a => a.ProcessId != 999 && a.ProcessId != 1000 && a.ProcessId != 1001 && a.ProcessId != 1002).Max(a => a.ProcessId) : 0; if (actualPrevProcess == 1002 && prevProcessOfThisWorksheet == processId) { //after launch previous process can be continued } else if (processId != 1000 && processId != 1001 && processId != 1002) { if (thisWorksheetWorkLines != null && thisWorksheetWorkLines.Any()) { if (prevProcessOfThisWorksheet != 0 && prevProcessOfThisWorksheet >= processId) { return("عدم رعایت ترتیب فرآیند" + "- کاربر:" + new UserRepository().GetById(operatorId)?.Username + "- کاربرگ:" + worksheetId); } } } if (HttpContext.Current.Session["worksheetProcesses" + "#" + worksheetId] == null) { var wsheetProcesses = new WorksheetRepository().GetWorksheetProcesses(worksheetId); if (wsheetProcesses == null) { return("کاربرگ ردیف ندارد"); } HttpContext.Current.Session["worksheetProcesses" + "#" + worksheetId] = wsheetProcesses; } if (processId != 999 && processId != 1000 && processId != 1001 && processId != 1002) // 999 etmame movaghat, 1000 rework, 1001 esghat,1002 nahar { var thisWorksheetProcesses = (List <int>)HttpContext.Current.Session["worksheetProcesses" + "#" + worksheetId]; var indexOfPrevProcess = thisWorksheetProcesses.IndexOf(prevProcessOfThisWorksheet); var indexOfNextProcess = indexOfPrevProcess + 1; var nextProcessOfThisWorksheet = thisWorksheetProcesses[indexOfNextProcess]; if (processId != nextProcessOfThisWorksheet && !(actualPrevProcess == 1002 && prevProcessOfThisWorksheet == processId)) { return("عدم رعایت ترتیب فرآیند" + "- کاربر:" + new UserRepository().GetById(operatorId)?.Username + "- کاربرگ:" + worksheetId); } } var uow = new UnitOfWork(); if (processId != 999 && processId != 1000 && processId != 1001) { var wl = uow.WorkLines.Get(a => a.WorksheetId == worksheetId && a.OperatorId == operatorId && a.ProcessId == processId); if (wl?.Count != 0 && !(actualPrevProcess == 1002 && prevProcessOfThisWorksheet == processId)) { return($"فرآیند با این مشخصات قبلا ثبت شده کاربر:{new UserRepository().GetById(operatorId)?.Username} "); } } else { var intReworkEsghatPrevProcessId = reworkEsghatPrevProcessId.ToSafeInt(); if (processId == 1000) { var rw = uow.Reworks.Get(a => a.WorksheetId == worksheetId && a.PrevProcessId == intReworkEsghatPrevProcessId); if (rw?.Count != 0) { return("برای این فرآیند قبلا دوباره کاری ثبت شده است"); } } else if (processId == 1001) { var rw = uow.Esghats.Get(a => a.WorksheetId == worksheetId && a.PrevProcessId == intReworkEsghatPrevProcessId); if (rw?.Count != 0) { return("برای این فرآیند قبلا اسقاط ثبت شده است"); } } } var newWorkLine = uow.WorkLines.Create(new Repository.Entity.Domain.WorkLine() { InsertDateTime = DateTime.Now, WorksheetId = worksheetId, OperatorId = operatorId, ProcessId = processId } ); var acodes = reworkACodes.Split(','); var reasons = reworkReasons.Split(','); if (acodes.Contains("-1")) { return("علت انتخاب نشده"); } if (reworkEsghatMode != "") { if (reworkEsghatMode.ToLower() == "rework") { var newRework = uow.Reworks.Create(new Repository.Entity.Domain.Rework() { InsertDateTime = DateTime.Now, OperatorId = operatorId, InsertedUserId = operatorId, //? Desc = reworkDesc, PrevProcessId = reworkEsghatPrevProcessId.ToSafeInt(), WorksheetId = worksheetId, Status = -1, }); if (acodes.Any()) { newRework.ReworkDetails = new List <ReworkDetail>(); for (int i = 0; i < acodes.Length; i++) { newRework.ReworkDetails.Add(new ReworkDetail { ACode = acodes[i], ReworkReasonId = reasons[i].ToSafeInt() }); } } newWorkLine.Rework = newRework; } else { var newEsghat = uow.Esghats.Create(new Repository.Entity.Domain.Esghat() { InsertDateTime = DateTime.Now, OperatorId = operatorId, InsertedUserId = operatorId, //? Desc = reworkDesc, PrevProcessId = reworkEsghatPrevProcessId.ToSafeInt(), WorksheetId = worksheetId, Status = -1 }); if (acodes.Any()) { newEsghat.EsghatDetails = new List <EsghatDetail>(); for (int i = 0; i < acodes.Length; i++) { newEsghat.EsghatDetails.Add(new EsghatDetail { ACode = acodes[i], ReworkReasonId = reasons[i].ToSafeInt() }); } } newWorkLine.Esghat = newEsghat; } } var result = uow.SaveChanges(); if (result.IsSuccess) { HttpContext.Current.Session[worksheetId + "#" + operatorId] = processId; return("OK"); } else { //((Main)Page.Master).SetGeneralMessage("خطا در ذخیره اطلاعات", MessageType.Error); Debuging.Error(result.ResultCode + "," + result.Message + "," + result.Message); return("خطا در اضافه کردن ردیف"); } }