protected void gridWorkLine_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Edit") { //Response.Redirect("Category.aspx?Id=" + e.CommandArgument); } else if (e.CommandName == "Delete") { var data = new ConfirmData(); data.RawCommand = $"Delete from Worklines where Id = {e.CommandArgument.ToSafeString()}"; var wl = new WorkLineRepository().GetById(e.CommandArgument.ToSafeInt()); if (wl.ReworkId != null) { data.RawCommand += $" Delete from Reworks where Id = {wl.ReworkId}"; } else if (wl.EsghatId != null) { data.RawCommand += $" Delete from Esghats where Id = {wl.EsghatId}"; } data.Msg = "آیا از حذف اطمینان دارید؟"; data.RedirectAdr = "Workline.aspx"; Session["ConfirmData"] = data; Response.RedirectToRoute("Confirmation"); Response.End(); } }
protected void Page_Load(object sender, EventArgs e) { var repo = new WorkLineRepository(); if (chkShowAll.Checked) { gridWorkLine.DataSource = repo.GetAllWorkLines(); } else { gridWorkLine.DataSource = repo.GetTodayWorkLine(); } gridWorkLine.DataBind(); lblCurrentDate.Text = Common.Utility.CastToFaDate(DateTime.Now).ToPersianNumber(); Session["Result"] = gridWorkLine.DataSource; txtBarcodeInput.Focus(); Session["InputBarcode"] = txtBarcodeInput.Text; txtBarcodeInput.Text = ""; if (!IsPostBack) { BindDrpACode(); BindDrpOp(); BindDrpPrevProcess(); BindDrpReason(); } }
protected void btnRun_OnClick(object sender, EventArgs e) { List <Filter> filters = new List <Filter>(); var selectedOp = drpOperator.SelectedValue.ToSafeInt(); if (selectedOp != -1 && selectedOp != 0) { filters.Add(new Filter("OperatorId", OperationType.Equals, drpOperator.SelectedValue.ToSafeInt())); } if (dtFrom.Date != "") { filters.Add(new Filter("InsertDateTime", OperationType.GreaterThanOrEqual, dtFrom.Date.ToEnDate())); } if (dtTo.Date != "") { filters.Add(new Filter("InsertDateTime", OperationType.LessThanOrEqual, dtTo.Date.ToEnDate().AddDays(1).AddSeconds(-1))); } if (txtPartNo.Text != "") { filters.Add(new Filter("PartNo", OperationType.Equals, txtPartNo.Text)); } var whereClause = filters.Count > 0 ? ExpressionBuilder.GetExpression <WorkLineHelper>(filters) : null; var repType = drpReportType.SelectedValue.ToSafeInt(); //0 FriendlyName //1 ProductName //2 ProcessName //3 PersianDate //4 Year //5 Month //6 Day //7 Count //8 ProcessTime //9 ProcessDuration //10 diffTime RadGridReport.Columns[1].Visible = repType == 2; RadGridReport.Columns[2].Visible = repType == 2 || repType == 7 || repType == 8 || repType == 9 || repType == 10; RadGridReport.Columns[3].Visible = repType == 1 || repType == 2; RadGridReport.Columns[7].Visible = repType == 1; RadGridReport.Columns[4].Visible = RadGridReport.Columns[5].Visible = repType == 1 || repType == 4 || repType == 6 || repType == 7 || repType == 8 || repType == 9 || repType == 10; RadGridReport.Columns[6].Visible = repType == 1 || repType == 4 || repType == 7 || repType == 8; RadGridReport.Columns[8].Visible = repType == 4 || repType == 3 || repType == 6 || repType == 7 || repType == 8 || repType == 9 || repType == 10; RadGridReport.Columns[9].Visible = repType == 4 || repType == 3 || repType == 6 || repType == 7 || repType == 8 || repType == 9 || repType == 10; RadGridReport.Columns[10].Visible = repType == 7 || repType == 8 || repType == 9 || repType == 10; Session["Result"] = new WorkLineRepository().GetAllForSummaryReport(repType, whereClause); BindGrid(); }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindDrpOp(); List <Filter> filters = new List <Filter>(); filters.Add(new Filter("InsertDateTime", OperationType.GreaterThanOrEqual, DateTime.Now.AddDays(-7))); filters.Add(new Filter("InsertDateTime", OperationType.LessThanOrEqual, DateTime.Now)); var whereClause = ExpressionBuilder.GetExpression <WorkLineHelper>(filters); Session["Result"] = new WorkLineRepository().GetAllForReport(whereClause); } BindGrid(); }
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(); }
protected void btnRun_OnClick(object sender, EventArgs e) { List <Filter> filters = new List <Filter>(); var selectedOp = drpOperator.SelectedValue.ToSafeInt(); if (selectedOp != -1 && selectedOp != 0) { filters.Add(new Filter("OperatorId", OperationType.Equals, drpOperator.SelectedValue.ToSafeInt())); } if (dtFrom.Date != "") { filters.Add(new Filter("InsertDateTime", OperationType.GreaterThanOrEqual, dtFrom.Date.ToEnDate())); } if (dtTo.Date != "") { filters.Add(new Filter("InsertDateTime", OperationType.LessThanOrEqual, dtTo.Date.ToEnDate().AddDays(1).AddSeconds(-1))); } var whereClause = filters.Count > 0 ? ExpressionBuilder.GetExpression <WorkLineHelper>(filters) : null; Session["Result"] = new WorkLineRepository().GetAllForReport(whereClause); 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("خطا در اضافه کردن ردیف"); } }