예제 #1
0
        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();
            }
        }
예제 #2
0
        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();
            }
        }
예제 #3
0
        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();
        }
예제 #4
0
        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();
        }
예제 #5
0
        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();
        }
예제 #6
0
        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();
        }
예제 #7
0
        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("خطا در اضافه کردن ردیف");
            }
        }
예제 #8
0
        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("خطا در ذخیره اطلاعات");
            }
        }
예제 #9
0
        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("خطا در اضافه کردن ردیف");
            }
        }