Exemplo n.º 1
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();
        }
Exemplo n.º 2
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("خطا در اضافه کردن ردیف");
            }
        }
Exemplo n.º 3
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("خطا در ذخیره اطلاعات");
            }
        }
Exemplo n.º 4
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("خطا در اضافه کردن ردیف");
            }
        }