/// <summary> /// Deprecated Method for adding a new object to the ProductionJobs EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToProductionJobs(ProductionJob productionJob) { base.AddObject("ProductionJobs", productionJob); }
protected void LoadViewJobProdLists(EditPrdnJobViewModel viewJob, ProductionJob job = null) { viewJob.ProdOptions = ProdOptDefn.ProdOptions(viewJob.ProdCD, viewJob.ParentProdCD); viewJob.ProdImageInfoSet = IsisDbContext.ProdImageInfoSet(viewJob.ProdCD); }
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); } } } }
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); } }
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); }
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); }
//[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); } } }
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; }
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(); }
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(); }
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); } }
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(); } } }
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(); } }
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); } }
/// <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; }
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); } } }
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); } } }
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); }
private CompleteRWJobResult CompleteRWJob(ProductionJob editJob) { return new CompleteRWJobResult(ActionUpdateType.Success); }
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; }