private void butPrint_Click(object sender, EventArgs e) { var result = HeaderContent.SerialLines.Where(i => i.CutSeq == HeaderContent.CutSeq).Min(i => i.LengthActual); if (!timer1.Enabled) { MessageBox.Show("Pleas start work before calculate weight.", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (result == 0) { MessageBox.Show("Please complete all data in the Grid.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (_repo.SaveSerialCutting(epiSession, HeaderContent)) { CuttedLineUpModel cutline = new CuttedLineUpModel(); var matlineid = (from item in HeaderContent.SerialLines where item.CutSeq == HeaderContent.CutSeq select item.MaterialTransLineID).First(); cutline.ProductionID = HeaderContent.ProductionID; cutline.WorkOrderID = HeaderContent.WorkOrderID; cutline.CutSeq = HeaderContent.CutSeq; cutline.StartTime = DateTime.Now; cutline.FinishTime = DateTime.Now; cutline.MaterialTransLineID = matlineid; HeaderContent.Cutteds = _repo.SaveCuttedLineUp(epiSession, cutline).ToList(); SetTimeControl("Print"); ReportClass rptH = new ReportClass(); dsProduction ds = new dsProduction(); string outPath = Application.StartupPath + "\\Out\\test.pdf"; rptH.FileName = Application.StartupPath + "\\Reports\\Production\\ProductionLabel1.rpt"; foreach (var item in HeaderContent.SerialLines.Where(i => i.CutSeq == HeaderContent.CutSeq)) { ds.Label.AddLabelRow(item.SerialNo, item.NGFlag.ToString()); } rptH.Load(); ds.AcceptChanges(); rptH.SetDataSource(ds); rptH.Refresh(); rptH.ExportToDisk(ExportFormatType.PortableDocFormat, outPath); OpenPdfFile(outPath); } }
public IEnumerable<CuttedLineUpModel> SaveCuttedLineUp(SessionInfo _session, CuttedLineUpModel model) { string sql = string.Format(@"IF NOT EXISTS ( SELECT * FROM ucc_prd_CuttingLineUp (NOLOCK) WHERE WorkOrderID = {1} AND CutSeq = {2} ) BEGIN INSERT INTO ucc_prd_CuttingLineUp (ProductionID ,WorkOrderID ,CutSeq ,StartTime ,FinishTime ,CompleteFlag ,CreationDate ,LastUpdateDate ,CreatedBy ,UpdatedBy ,MaterialTransLineID) VALUES ({0} --<ProductionID, bigint,> ,{1} --<WorkOrderID, bigint,> ,{2} --<CutSeq, decimal(5,1),> ,GETDATE() --<StartTime, datetime,> ,GETDATE() --<FinishTime, datetime,> ,{3} --<CompleteFlag, int,> ,GETDATE() --<CreationDate, datetime,> ,GETDATE() --<LastUpdateDate, datetime,> ,N'{4}' --<CreatedBy, varchar(45),> ,N'{4}' --<UpdatedBy, varchar(45),> ,{5} --<MaterialTransLineID, bigint,> ) END ELSE BEGIN UPDATE ucc_prd_CuttingLineUp SET ProductionID = {0} --<ProductionID, bigint,> ,WorkOrderID = {1} --<WorkOrderID, bigint,> ,CutSeq = {2} --<CutSeq, decimal(5,1),> ,StartTime = GETDATE() --<StartTime, datetime,> ,FinishTime = GETDATE() --<FinishTime, datetime,> ,CompleteFlag = {3} --<CompleteFlag, int,> ,CreationDate = GETDATE() --<CreationDate, datetime,> ,LastUpdateDate = GETDATE() --<LastUpdateDate, datetime,> ,CreatedBy = N'{4}' --<CreatedBy, varchar(45),> ,UpdatedBy = N'{4}' --<UpdatedBy, varchar(45),> ,MaterialTransLineID = {5} --<MaterialTransLineID, bigint,> WHERE WorkOrderID = {1} AND CutSeq = {2} END" + Environment.NewLine , model.ProductionID , model.WorkOrderID , model.CutSeq , model.CompleteFlag , _session.UserID , model.MaterialTransLineID); //Update PartLot.CheckBox01 = 1 to change status has already used. sql += string.Format(@"UPDATE ucc_prd_CuttingLineUp SET CompleteFlag = 1 WHERE WorkOrderID = {0} AND CutSeq = {1}", model.WorkOrderID, Math.Round(model.CutSeq, 0) - 1); Repository.Instance.ExecuteWithTransaction(sql, "Save Line up"); return GetCutLineUpAll(model.WorkOrderID); }