Exemplo n.º 1
0
 /// <summary>
 /// Deprecated Method for adding a new object to the ProductionJobs EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToProductionJobs(ProductionJob productionJob)
 {
     base.AddObject("ProductionJobs", productionJob);
 }
Exemplo n.º 2
0
 protected void LoadViewJobProdLists(EditPrdnJobViewModel viewJob, ProductionJob job = null)
 {
     viewJob.ProdOptions = ProdOptDefn.ProdOptions(viewJob.ProdCD, viewJob.ParentProdCD);
     viewJob.ProdImageInfoSet = IsisDbContext.ProdImageInfoSet(viewJob.ProdCD);
 }
Exemplo n.º 3
0
        protected void UpdateJobAttachments(ProductionJob editJob, FileAttacher attacher)
        {
            if (attacher != null)
            {
                List<string> delIDS = attacher.DelFileIDs();
                if (delIDS.IsAny())
                {
                    string sql = "DELETE FROM FG_PRDN_JOB_ATTACHMENT WHERE FG_PRDN_JOB_ATT_ID IN (" +
                        PrdnDataHelper.ParmFormatList(delIDS.Count()) + ")";
                    PrdnDBContext.ExecuteStoreCommand(sql, delIDS.Cast<object>().ToArray());
                }

                if (attacher.NotNullAny(a => a.ExtantFiles))
                {
                    foreach (var dbFile in attacher.ExtantFiles)
                    {
                        var mods = editJob.Attachments.Where(a =>
                            (a.ID == dbFile.DecimalID)
                            && ((a.AttachmentTypeID != dbFile.AttTypeID) && (dbFile.AttTypeID != null)
                                || a.Description != dbFile.Description)
                        );
                        foreach (var modFile in mods)
                        {
                            modFile.AttachmentTypeID = (decimal)dbFile.AttTypeID;
                            modFile.Description = dbFile.Description;
                        }
                    }
                };
                if (attacher.NotNullAny(a => a.CachedFiles))
                {
                    foreach (var newFile in attacher.CachedFiles)
                    {
                        CST.Prdn.Data.ProductionJobAttachment newAttachment = new CST.Prdn.Data.ProductionJobAttachment
                        {   //JobID = editJob.ID,
                            FileName = newFile.FileName,
                            MimeType = newFile.MimeType,
                            Description = newFile.Description,
                            Attachment = newFile.FileData
                        };
                        if (newFile.AttTypeID != null)
                        {
                            newAttachment.AttachmentTypeID = (decimal)newFile.AttTypeID;
                        }
                        editJob.Attachments.Add(newAttachment);
                    }
                }
            }
        }
Exemplo n.º 4
0
        protected void PrintJobLabel(IPrinterInfo printerInfo, ProductionJob job)
        {
            InvItemViewModel itemModel = null;
            EditPrdnJobViewModel viewJob = null;

            if (job.CustID == PrdnDataHelper.PrdnCustIDCST)
            {
                itemModel = LookupInvItem(job.SerialNo);
            }
            else
            {
                viewJob = Mapper.Map<ProductionJob, EditPrdnJobViewModel>(job);
            }

            if (itemModel != null)
            {
                PrintItemViewLabel(printerInfo, itemModel, job);
            }
            else if (viewJob != null)
            {
                PrintJobViewItemLabel(printerInfo, viewJob, job);
            }
        }
Exemplo n.º 5
0
        protected void PrintJobViewItemLabel(IPrinterInfo printerInfo, EditPrdnJobViewModel viewJob, ProductionJob job = null)
        {
            if ((viewJob.PrdnTypeCode == null) && (job.IfNotNull(j => j.Run) != null))
            {
                viewJob.loadFromRun(job.Run);
            }
            if ((viewJob.WorksheetID != null) && (viewJob.EditWorksheet == null))
            {
                WorksheetEditViewModel.LoadViewJobEditWorksheet(viewJob, job);
            }

            PrdnZplMultiParam parm = new PrdnZplMultiParam(viewJob);
            ZplPrinterHelper.NetworkMultiZpl(printerInfo.PrinterHostName, (int)printerInfo.PrinterPort, parm);
        }
Exemplo n.º 6
0
        private CompleteJobResult CompleteJob(ProductionJob editJob)
        {
            if (!UpdMakePrdnJobViewModel.FromStatusTo(editJob.Status, PrdnJobStatus.Completed))
            {
                return new CompleteJobResult(ActionUpdateType.Invalid,
                    SystemExtensions.Sentence(LocalStr.Cannot, LocalStr.Change, LocalStr.Status, LocalStr.From, editJob.Status.Description(), LocalStr.to, PrdnJobStatus.Completed.Description()));
            }

            if (editJob.CustID == PrdnDataHelper.PrdnCustIDCST)
            {
                return CompleteCstJob(editJob);
            }
            else if (editJob.CustID == PrdnDataHelper.PrdnCustIDRW)
            {
                return CompleteRWJob(editJob);
            }
            else
                return new CompleteJobResult(ActionUpdateType.Success);
        }
Exemplo n.º 7
0
        //[HttpPost]
        //public ActionResult RequestRun()
        //{
        //    RequestScheduleViewModel model = null;
        //    if (TryValidateModel(model)) {
        //        return RedirectToAction(actionName: model.RouteAction, controllerName: model.RouteController,
        //                routeValues: new
        //                {
        //                    requestID = model.RequestID,
        //                    urlReturn = model.UrlReturn,
        //                    runID = model.RunID
        //                });
        //    }
        //    else {
        //        model.LookupRunModel = new PrdnRunLookupModel();
        //        model.NewRunModel = new NewPrdnRunViewModel(Session, model.RouteController, model.RouteAction,
        //            new RequestCreateRunActionParm { RequestID = model.RequestID, UrlReturn = model.UrlReturn });
        //        return View(model);
        //    }
        //}
        protected void UpdateScheduledRequest(EditPrdnJobViewModel newViewJob, ProductionJob job)
        {
            if (job.CstRequestID == null) {
                return;
            }

            var request = (from r in PrdnDBContext.Requests
                            where r.ID == job.CstRequestID
                            select r).FirstOrDefault();

            if (request != null)
            {
                CST.Prdn.Data.ProductionJobAttachment newAttachment = null;

                request.Status = RequestStatus.SCHEDULED;
                request.ScheduledJobID = job.ID;
                request.ScheduledDt = DateTime.Now;
                request.ScheduledUserID = GetCurrentUserID();

                var reqAtt = (from a in PrdnDBContext.RequestAttachments
                                where a.ID == job.CstRequestID && a.Attachment != null
                                select new
                                {   a.ID,
                                    a.FileName,
                                    MimeContentType = a.MimeType.ContentType,
                                    MimeSubType = a.MimeTypeCD,
                                    a.MimeType,
                                }).FirstOrDefault();

                if (reqAtt != null)
                {
                    string requestAttachmentTypeID = WebConfigurationManager.AppSettings["RequestAttachmentTypeID"];
                    decimal attTypeID = Convert.ToDecimal(requestAttachmentTypeID);

                    newAttachment = new CST.Prdn.Data.ProductionJobAttachment
                    {   //JobID = editJob.ID,
                        FileName = reqAtt.FileName,
                        MimeType = CST.ISIS.Data.Attachment.ConcatMimeType(reqAtt.MimeContentType, reqAtt.MimeSubType),
                        Description = "Original Request Attachment",
                        Attachment = null,
                        AttachmentTypeID = attTypeID
                    };
                    job.Attachments.Add(newAttachment);
                }

                PrdnDBContext.SaveChanges();

                if (newAttachment != null) {
                    PrdnDBContext.ExecuteStoreCommand(
            @"UPDATE FG_PRDN_JOB_ATTACHMENT J SET J.FG_ATTACH_DATA = (SELECT R.FG_ATTACHMENT FROM FG_REQ_PART R WHERE R.FG_REQUEST_ID = :p0) WHERE J.FG_PRDN_JOB_ATT_ID = :p1"
                    , reqAtt.ID, newAttachment.ID);
                }

            }
        }
Exemplo n.º 8
0
        protected ProductionJob MakeJobCopy(ProductionJob sourceJob)
        {
            ProductionJob copyJob = (ProductionJob)sourceJob.Clone();
            copyJob.SetCreatedDt(DateTime.Now);
            copyJob.RunSeqNo = PrdnDBContext.NextRunSequence(copyJob.RunID);
            copyJob.SerialNo = PrdnDBContext.NextSerialStr();

            Worksheet copyWS = PrdnDBContext.CloneWorksheet(sourceJob.Worksheet, PrdnIsisEntities.GetNextWorksheetID());
            copyJob.AssignWorksheet(copyWS);

            foreach (ProductionJobAttachment att in sourceJob.Attachments)
            {
                ProductionJobAttachment attClone = (ProductionJobAttachment)att.Clone();
                attClone.ID = 0;
                attClone.JobID = 0;
                copyJob.Attachments.Add(attClone);
            }
            return copyJob;
        }
Exemplo n.º 9
0
        protected void SwitchRunSeqs(PrdnEntities prdnDBContext, ProductionJob jobFrom, ProductionJob jobTo)
        {
            decimal seqFrom = jobFrom.RunSeqNo;
            decimal seqTo = jobTo.RunSeqNo;

            jobFrom.RunSeqNo = -99;
            prdnDBContext.SaveChanges();

            jobTo.RunSeqNo = seqFrom;
            prdnDBContext.SaveChanges();

            jobFrom.RunSeqNo = seqTo;
            prdnDBContext.SaveChanges();
        }
Exemplo n.º 10
0
        protected void InsertRunSeqBefore(PrdnEntities prdnDBContext, ProductionJob jobFrom, int targSeqTo)
        {
            var targJobs = (from j in PrdnDBContext.ProductionJobs
                            where j.RunID == jobFrom.RunID
                            where j.RunSeqNo > targSeqTo - 1 && j.RunSeqNo <= targSeqTo
                            orderby j.RunSeqNo
                            select new { j.RunSeqNo }).ToList();

            if (targJobs.Count < 1)
            {
                throw new Exception(SystemExtensions.Sentence(LocalStr.Job, LocalStr.SeqNo, targSeqTo.ToString(), LocalStr.verbIsNot, LocalStr.valid));
            }

            var targJob = targJobs.OrderBy(j => j.RunSeqNo).Last();

            if (targJobs.Count == 1)
            {
                jobFrom.RunSeqNo = targJob.RunSeqNo - 0.5M;
            }
            else
            {
                var nextLowJob = targJobs.Where(j => j.RunSeqNo < targJob.RunSeqNo).OrderBy(j => j.RunSeqNo).Last();
                decimal gap = targJob.RunSeqNo - nextLowJob.RunSeqNo;
                jobFrom.RunSeqNo = nextLowJob.RunSeqNo + gap + (gap/2);
            }
            prdnDBContext.SaveChanges();
        }
Exemplo n.º 11
0
 protected void InsertRunSeqs(PrdnEntities prdnDBContext, ProductionJob jobFrom, int targSeqTo)
 {
     if (jobFrom.RunSeqNo > targSeqTo)
     {
         InsertRunSeqBefore(prdnDBContext, jobFrom, targSeqTo);
     }
     else if (jobFrom.RunSeqNo < targSeqTo)
     {
         InsertRunSeqAfter(prdnDBContext, jobFrom, targSeqTo);
     }
 }
Exemplo n.º 12
0
 protected void CopyJob(ProductionJob sourceJob, int qty)
 {
     if (qty > 0)
     {
         ProductionJob copyJob = null;
         for (int i = 0; i < qty; i++)
         {
             copyJob = MakeJobCopy(sourceJob);
             PrdnDBContext.ProductionJobs.AddObject(copyJob);
             PrdnDBContext.SaveChanges();
         }
     }
 }
Exemplo n.º 13
0
        protected void AddExtraJobsForQty(EditPrdnJobViewModel newViewJob, ProductionJob job)
        {
            AddPrdnJobViewModel addedViewJob = newViewJob as AddPrdnJobViewModel;
            if (addedViewJob.IfNotNull(j => j.Qty) > 1)
            {
                CopyJob(job, addedViewJob.Qty-1);

                PrdnDBContext.SaveChanges();
            }
        }
Exemplo n.º 14
0
        private ActionUpdateResult AddNewJobFromViewModel(EditPrdnJobViewModel newViewJob, IEnumerable<HttpPostedFileBase> uploadedFiles, out ProductionJob addedJob,
            Action<EditPrdnJobViewModel, ProductionJob> extraSaveProc=null)
        {
            addedJob = null;

            ProcessAttacherForSave(newViewJob.Attacher, uploadedFiles);

            JobModelValidate(newViewJob);
            if (ModelState.IsValid)
            {
                EnsurePrdnDBContextOpen();
                using (var transaction = PrdnDBContext.Connection.BeginTransaction())
                {
                    try
                    {
                        newViewJob.RunSeqNo = PrdnDBContext.NextRunSequence(newViewJob.RunID);
                        newViewJob.SerialNo = PrdnDBContext.NextSerialStr();

                        ProductionJob newJob = new ProductionJob(DateTime.Now, GetCurrentUserID());

                        Mapper.Map<EditPrdnJobViewModel, ProductionJob>(newViewJob, newJob);

                        newJob.UpdateStatus((PrdnJobStatus)newViewJob.EditStatus, GetCurrentUserID());

                        PrdnDBContext.ProductionJobs.AddObject(newJob);

                        UpdateJobWorksheet(newJob, newViewJob);

                        UpdateJobAttachments(newJob, newViewJob.Attacher);

                        PrdnDBContext.SaveChanges();
                        if (extraSaveProc != null) {
                            extraSaveProc(newViewJob, newJob);
                        }

                        if ((newViewJob.EditRunSeqNo != null) && (newJob.RunSeqNo != newViewJob.EditRunSeqNo))
                        {
                            InsertRunSeqs(PrdnDBContext, newJob, (int)newViewJob.EditRunSeqNo);
                        }
                        ReSequenceRun(newJob.RunID);

                        transaction.Commit();

                        addedJob = newJob;

                        return new ActionUpdateResult(ActionUpdateType.Success);
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        return new ActionUpdateResult(ActionUpdateType.Exception, ex.Message);
                    }
                }
            }
            else
            {
                loadViewJobForPost(newViewJob);
                return new ActionUpdateResult(ActionUpdateType.Invalid);
            }
        }
Exemplo n.º 15
0
 /// <summary>
 /// Create a new ProductionJob object.
 /// </summary>
 /// <param name="id">Initial value of the ID property.</param>
 /// <param name="runID">Initial value of the RunID property.</param>
 /// <param name="runSeqNo">Initial value of the RunSeqNo property.</param>
 /// <param name="custID">Initial value of the CustID property.</param>
 /// <param name="priorityID">Initial value of the PriorityID property.</param>
 /// <param name="prodCD">Initial value of the ProdCD property.</param>
 /// <param name="serialNo">Initial value of the SerialNo property.</param>
 /// <param name="statusStr">Initial value of the StatusStr property.</param>
 /// <param name="createdDt">Initial value of the CreatedDt property.</param>
 /// <param name="createdUserID">Initial value of the CreatedUserID property.</param>
 public static ProductionJob CreateProductionJob(global::System.Decimal id, global::System.Decimal runID, global::System.Decimal runSeqNo, global::System.Decimal custID, global::System.Decimal priorityID, global::System.String prodCD, global::System.String serialNo, global::System.String statusStr, global::System.DateTime createdDt, global::System.Decimal createdUserID)
 {
     ProductionJob productionJob = new ProductionJob();
     productionJob.ID = id;
     productionJob.RunID = runID;
     productionJob.RunSeqNo = runSeqNo;
     productionJob.CustID = custID;
     productionJob.PriorityID = priorityID;
     productionJob.ProdCD = prodCD;
     productionJob.SerialNo = serialNo;
     productionJob.StatusStr = statusStr;
     productionJob.CreatedDt = createdDt;
     productionJob.CreatedUserID = createdUserID;
     return productionJob;
 }
Exemplo n.º 16
0
        protected void UpdateJobWorksheet(ProductionJob editJob, EditPrdnJobViewModel viewJob)
        {
            bool anyWSRows = viewJob.NotNullAny(n => n.IfNotNull(x => x.EditWorksheet).IfNotNull(x => x.WorksheetOpts));

            Worksheet worksheet = editJob.Worksheet;
            if (worksheet != null) // clear the existing worksheet chars and comps
            {
                PrdnDBContext.ExecuteStoreCommand("DELETE FROM FG_WORKSHEET_CHAR WHERE FG_WORKSHEET_ID = :p0", worksheet.ID);
                PrdnDBContext.ExecuteStoreCommand("DELETE FROM FG_WORKSHEET_COMP WHERE FG_PARENT_COMP_PROD_CD IS NOT NULL AND FG_WORKSHEET_ID = :p0", worksheet.ID);
                PrdnDBContext.ExecuteStoreCommand("DELETE FROM FG_WORKSHEET_COMP WHERE FG_WORKSHEET_ID = :p0", worksheet.ID);

                if (anyWSRows)
                {
                    editJob.AssignWorksheet(worksheet);
                }
                else
                {
                    PrdnDBContext.DeleteObject(worksheet);
                }

            }
            else if (anyWSRows)
            {
                worksheet = new Worksheet { ID = PrdnIsisEntities.GetNextWorksheetID() };
                editJob.AssignWorksheet(worksheet);
            }

            if (anyWSRows)
            {
                viewJob.EditWorksheet.WorksheetOpts.ForEach(o => o.AssignTypeProps());

                foreach (var opt in viewJob.EditWorksheet.WorksheetOpts.Where(o => (o.Type == OptionType.Component) && o.IsRoot))
                {
                    WorksheetComp comp = Mapper.Map<WorksheetOpt, WorksheetComp>(opt);
                    worksheet.WorksheetComps.Add(comp);
                }
                foreach (var opt in viewJob.EditWorksheet.WorksheetOpts.Where(o => (o.Type == OptionType.Component) && !o.IsRoot))
                {
                    WorksheetComp comp = Mapper.Map<WorksheetOpt, WorksheetComp>(opt);
                    worksheet.WorksheetComps.Add(comp);
                }
                foreach (var opt in viewJob.EditWorksheet.WorksheetOpts.Where(o => o.Type == OptionType.Characteristic))
                {
                    WorksheetChar chr = Mapper.Map<WorksheetOpt, WorksheetChar>(opt);
                    worksheet.WorksheetChars.Add(chr);
                }
            }
        }
Exemplo n.º 17
0
        private CompleteJobResult CompleteCstJob(ProductionJob editJob)
        {
            var itm = (from i in PrdnDBContext.PrdnInvItems
                       where i.SerialNo == editJob.SerialNo
                       select new { i.SerialNo }).FirstOrDefault();

            if (itm != null)
            {
                return new CompleteCstJobResult(ActionUpdateType.Invalid) { InvItemID = editJob.PrdnInvItem.InvItemID };
            }

            EnsurePrdnDBContextOpen();
            using (var transaction = PrdnDBContext.Connection.BeginTransaction())
            {
                try
                {
                    decimal invItemID = 0m;
                    PrdnDBContext.ExecuteStoreCommand(@"BEGIN FG_CREATE_ITEM_FROM_PRDN_JOB(:p0, :p1); END;", invItemID, editJob.ID);

                    if (editJob.Status != PrdnJobStatus.Completed)
                    {
                        editJob.UpdateStatus(PrdnJobStatus.Completed, GetCurrentUserID());
                        PrdnDBContext.SaveChanges();
                    }

                    transaction.Commit();
                    return new CompleteCstJobResult(ActionUpdateType.Success) { InvItemID = editJob.PrdnInvItem.InvItemID };
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    return new CompleteCstJobResult(ActionUpdateType.Exception, "Error Saving Job " + ex.Message);
                }
            }
        }
Exemplo n.º 18
0
        protected void PrintItemViewLabel(IPrinterInfo printerInfo, InvItemViewModel item, ProductionJob job = null)
        {
            PrdnZplMultiParam parm = new PrdnZplMultiParam(item);

            if (job != null)
            {
                parm.Priority = job.IfNotNull(j => j.Priority).IfNotNull(p => p.Name);

                parm.SetPrdnOrderDisp(
                    job.IfNotNull(j => j.Run).IfNotNull(r => r.PrdnOrderNo),
                    job.IfNotNull(j => j.Run).IfNotNull(r => r.PrdnType.IfNotNull(t => t.Code)),
                    job.IfNotNull(j => j.RunSeqNo));

                parm.ShipCD = job.IfNotNull(j => j.ShipMethodCD);
            }

            ZplPrinterHelper.NetworkMultiZpl(printerInfo.PrinterHostName, (int)printerInfo.PrinterPort, parm);
        }
Exemplo n.º 19
0
 private CompleteRWJobResult CompleteRWJob(ProductionJob editJob)
 {
     return new CompleteRWJobResult(ActionUpdateType.Success);
 }
Exemplo n.º 20
0
 public static void LoadViewJobEditWorksheet(EditPrdnJobViewModel viewJob, ProductionJob job)
 {
     if (job.IsNotNull(j => j.Worksheet))
     {
         viewJob.EditWorksheet = new WorksheetEditViewModel(job.Product.IfNotNull(j => j.ProdTypeCD), job.Worksheet);
     }
     else
     {
         if (viewJob.WorksheetID != null)
         {
             viewJob.EditWorksheet = new WorksheetEditViewModel(job.Product.IfNotNull(j => j.ProdTypeCD), viewJob.WorksheetID);
         }
         else
         {
             viewJob.EditWorksheet = new WorksheetEditViewModel(job.Product.IfNotNull(j => j.ProdTypeCD));
         }
     }
     viewJob.EditWorksheet.Editable = false;
 }