public ProductionSlitter(SessionInfo _session = null, ProductionHeadModel model = null) { InitializeComponent(); epiSession = _session; this._repo = new ProductionRepo(); this._repoPlan = new WorkEntryRepo(); this._repoRes = new ResourceRepo(); this._repoUcd = new UserCodeRepo(); HeaderContent = new ProductionHeadModel(); cuttingList = new Dictionary<int, string>(); pauseFlag = false; if (model != null) { this.HeaderContent = model; } }
private void SetHeadContent(ProductionHeadModel model) { ClearHeaderContent(); //TextBox txtWorkOrderNum.DataBindings.Add("Text", model, "WorkOrderNum", false, DataSourceUpdateMode.OnPropertyChanged); txtPICName.DataBindings.Add("Text", epiSession, "UserName", false, DataSourceUpdateMode.OnPropertyChanged); //ComboBox cmbProcessLine.DataSource = model.ProcessLines.ToList(); cmbProcessLine.DisplayMember = "ResourceDescription"; cmbProcessLine.ValueMember = "ResourceID"; cmbProcessLine.DataBindings.Add("SelectedValue", model, "ProcessLineId", false, DataSourceUpdateMode.OnPropertyChanged); cmbCutLine.DataSource = model.SerialLines.GroupBy(x => new { x.CutSeq }) .Select(g => g.First()).ToList(); cmbCutLine.DisplayMember = "CutSeqStr"; cmbCutLine.ValueMember = "CutSeqStr"; cmbCutLine.DataBindings.Add("SelectedValue", model, "CutSeqStr", false, DataSourceUpdateMode.OnPropertyChanged); //DatePicker //dtpProductionDate.Value = model.ProductionDate; //if (model.OperationState == 3 || model.OperationState == 4) //{ // SetTimeControl("Lock"); //} //else //{ // SetTimeControl("Ready"); //} //if (cmbCutLine.Items.Count > 0) cmbCutLine.SelectedIndex = 0; ShowCuttingSerail(); ListMaterialGrid(model.Materials); }
private void butDeleteCut_Click(object sender, EventArgs e) { DialogResult diaResult = MessageBox.Show("Are you sure to delete this cut.", "Question.", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (diaResult == DialogResult.Yes) { int indexOld = cmbCutLine.SelectedIndex; _repo.DeteteCutFromPlan(HeaderContent.WorkOrderID, HeaderContent.CutSeq); HeaderContent = _repo.GetProdHead(HeaderContent.WorkOrderID); SetHeadContent(HeaderContent); cmbCutLine.SelectedIndex = indexOld - 1; ShowCuttingSerail(); } }
private void tbutNew_Click(object sender, EventArgs e) { HeaderContent = new ProductionHeadModel(); SetHeadContent(HeaderContent); SetTimeControl("Normal"); PlanningHeadModel plan = new PlanningHeadModel(); plan.Plant = epiSession.PlantID; plan.Completed = 1; //Completed. plan.GenSerialFlag = 1; //Serial has created. plan.OperationState = 1; //Stay on planing operation. var result = _repoPlan.GetWorkAll(plan); using (WorkEntryDialog frm = new WorkEntryDialog(epiSession, result)) { frm.ShowDialog(); if (frm._selected != null) { HeaderContent.OperationState = frm._selected.OperationState; HeaderContent.WorkOrderID = frm._selected.WorkOrderID; HeaderContent.WorkOrderNum = frm._selected.WorkOrderNum; HeaderContent.ProcessLines = frm._selected.Resources.ToList(); HeaderContent.ProcessLineID = frm._selected.ProcessLineId; HeaderContent.SerialLines = _repo.GetAllSerialByWorkOrder(HeaderContent.WorkOrderID).ToList(); HeaderContent.Materials = frm._selected.Materials.ToList(); HeaderContent.Reasons = _repo.GetAllReasonAll().ToList(); //Set content and list Material was add from dialog. SetHeadContent(HeaderContent); } else { SetTimeControl("Normal"); return; } } if (HeaderContent.OperationState == 3 || HeaderContent.OperationState == 4) { SetTimeControl("Lock"); } else { SetTimeControl("Ready"); } }
private void butStart_Click(object sender, System.EventArgs e) { if (string.IsNullOrEmpty(cmbCutLine.Text)) { MessageBox.Show("Please fill cut seq.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); cmbCutLine.Focus(); return; } txtTimeStamp.Text = "00:00:00"; txtTimePause.Text = "00:00:00"; HeaderContent.ProductionDate = DateTime.Now; HeaderContent.StartTime = DateTime.Now; HeaderContent.PuaseTime = 0; HeaderContent.FinishTime = DateTime.Now; HeaderContent.CompleteFlag = 0; HeaderContent.OperationState = 2; HeaderContent = _repo.SaveHead(epiSession, HeaderContent); timestamp = HeaderContent.StartTime; SetTimeControl("Start"); HeaderContent.CutSeqStr = cmbCutLine.SelectedValue.ToString(); SetHeadContent(HeaderContent); }
private void butAddCut_Click(object sender, EventArgs e) { if (!timer1.Enabled) { MessageBox.Show("Pleas start work before calculate weight.", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DialogResult diaResult = MessageBox.Show("Are you sure to add cut.", "Question.", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (diaResult == DialogResult.Yes) { int indexOld = cmbCutLine.SelectedIndex; _repo.DeteteCutFromPlan(HeaderContent.WorkOrderID, HeaderContent.CutSeq); HeaderContent = _repo.GetProdHead(HeaderContent.WorkOrderID); SetHeadContent(HeaderContent); cmbCutLine.SelectedIndex = indexOld - 1; ShowCuttingSerail(); } }
public bool ClearSerialInEpicor(SessionInfo _session, ProductionHeadModel model, out string msg) { msg = string.Empty; bool IsSuccess = false; Session currSession; try { currSession = new Session(_session.UserID, _session.UserPassword, _session.AppServer, Session.LicenseType.Default); } catch (Exception ex) { msg = ex.Message; return false; } foreach (var item in model.SerialLines.Where(i => i.CutSeq.Equals(model.CutSeq))) { try { LotSelectUpdate lotPart = new LotSelectUpdate(currSession.ConnectionPool); lotPart.DeleteByID(item.MCSSNo, item.SerialNo); } catch (Exception ex) { msg = ex.Message + ": Status = " + IsSuccess.ToString(); IsSuccess = false; } } string sql = string.Format(@"DELETE FROM ucc_pln_SerialGenerated WHERE WorkOrderID = {0} ", model.WorkOrderID); Repository.Instance.ExecuteWithTransaction(sql, "Delete Serial"); return true; }
public bool SaveSerialCutting(SessionInfo _session, ProductionHeadModel model) { string sql = string.Empty; foreach (var item in model.SerialLines.Where(i => i.CutSeq == model.CutSeq)) { #region Queries statement sql += string.Format(@"IF NOT EXISTS ( SELECT * FROM ucc_prd_FinishJobBySerial (NOLOCK) WHERE ProductionID = {1} AND WorkOrderID = {2} AND SerialNo = N'{3}' AND CutSeq = {4} ) BEGIN INSERT INTO ucc_prd_FinishJobBySerial (Plant ,ProductionID ,WorkOrderID ,SerialNo ,CutSeq ,MaterialTransLineID ,MaterialSerialNo ,Thick ,Width ,Length ,ActualLengthM ,PlanLengthM ,Status ,ActualWeight ,PlanWeight ,Quantity ,TotalWeight ,Flag ,CreationDate ,LastUpdateDate ,CreatedBy ,UpdatedBy ,NGFlag ,CuttingLineID) VALUES (N'{0}' --<Plant, nvarchar(8),> ,{1} --<ProductionID, bigint,> ,{2} --<WorkOrderID, bigint,> ,N'{3}' --<SerialNo, nvarchar(40),> ,{4} --<CutSeq, decimal(5,1),> ,{5} --<MaterialTransLineID, bigint,> ,N'{6}' --<MaterialSerialNo, nvarchar(40),> ,{7} --<Thick, decimal(20,9),> ,{8} --<Width, decimal(20,9),> ,{9} --<Length, decimal(20,9),> ,{10} --<ActualLengthM, decimal(20,9),> ,{11} --<PlanLengthM, decimal(20,9),> ,N'{12}' --<Status, nvarchar(10),> ,{13} --<ActualWeight, decimal(20,9),> ,{14} --<PlanWeight, decimal(20,9),> ,{15} --<Quantity, decimal(20,9),> ,{16} --<TotalWeight, decimal(20,9),> ,{17} --<Flag, int,> ,GETDATE() --<CreationDate, datetime,> ,GETDATE() --<LastUpdateDate, datetime,> ,N'{18}' --<CreatedBy, nvarchar(45),> ,N'{18}' --<UpdatedBy, nvarchar(45),> ,{19} --<NGFlag, int,> ,{20} --<CuttingLineID, bigint,> ) END ELSE BEGIN UPDATE ucc_prd_FinishJobBySerial SET Plant = N'{0}' --<Plant, nvarchar(8),> ,ProductionID = {1} --<ProductionID, bigint,> ,WorkOrderID = {2} --<WorkOrderID, bigint,> ,SerialNo = N'{3}' --<SerialNo, nvarchar(40),> ,CutSeq = {4} --<CutSeq, decimal(5,1),> ,MaterialTransLineID = {5} --<MaterialTransLineID, bigint,> ,MaterialSerialNo = N'{6}' --<MaterialSerialNo, nvarchar(40),> ,Thick = {7} --<Thick, decimal(20,9),> ,Width = {8} --<Width, decimal(20,9),> ,Length = {9} --<Length, decimal(20,9),> ,ActualLengthM = {10} --<ActualLengthM, decimal(20,9),> ,PlanLengthM = {11} --<PlanLengthM, decimal(20,9),> ,Status = N'{12}' --<Status, nvarchar(10),> ,ActualWeight = {13} --<ActualWeight, decimal(20,9),> ,PlanWeight = {14} --<PlanWeight, decimal(20,9),> ,Quantity = {15} --<Quantity, decimal(20,9),> ,TotalWeight = {16} --<TotalWeight, decimal(20,9),> ,Flag = {17} --<Flag, int,> ,LastUpdateDate = GETDATE() --<LastUpdateDate, datetime,> ,UpdatedBy = N'{18}' --<UpdatedBy, nvarchar(45),> ,NGFlag = {19} --<NGFlag, int,> ,CuttingLineID = {20} --<CuttingLineID, bigint,> WHERE ProductionID = {1} AND WorkOrderID = {2} AND SerialNo = N'{3}' AND CutSeq = {4} END" + Environment.NewLine , _session.PlantID , model.ProductionID , model.WorkOrderID , item.SerialNo , model.CutSeq , item.MaterialTransLineID //{5} , item.MaterialSerialNo , item.Thick , item.Width , item.Length , item.LengthActual //{10} , item.LengthM , item.Status , item.WeightActual , item.UnitWeight , item.Quantity //{15} , item.TotalWeight , model.CompleteFlag , _session.UserID , Convert.ToInt32(item.NGFlag) , item.CuttingLineID); //Update PartLot.CheckBox01 = 1 to change status has already used. sql += string.Format(@"UPDATE ucc_pln_SerialGenerated SET ProductionUsedFlag = 1 WHERE WorkOrderID = {0} AND SerialNo = N'{1}'", model.WorkOrderID, item.SerialNo); #endregion Queries statement } try { Repository.Instance.ExecuteWithTransaction(sql, "Save Serial"); return true; } catch { return false; } }
public ProductionHeadModel SaveHead(SessionInfo _session, ProductionHeadModel model) { string sql = string.Format(@"IF NOT EXISTS ( SELECT * FROM ucc_prd_ProductionHead (NOLOCK) WHERE WorkOrderID = {1} AND Plant = N'{0}' ) BEGIN INSERT INTO ucc_prd_ProductionHead (WorkOrderID ,ProductionDate ,StartTime ,FinishTime ,PuaseTime ,ProcessLineID ,CompleteFlag ,CreationDate ,LastUpdateDate ,CreatedBy ,UpdatedBy ,Plant) VALUES ({1} --<WorkOrderID, bigint,> ,CONVERT(DATETIME, '{2}',103) --<ProductionDate, datetime,> ,CONVERT(DATETIME, '{3}',103) --<StartTime, datetime,> ,CONVERT(DATETIME, '{4}',103) --<FinishTime, datetime,> ,{5} --<PuaseTime, int,> ,N'{6}' --<ProcessLineID, nvarchar(45),> ,{7} --<CompleteFlag, int,> ,GETDATE() --<CreationDate, datetime,> ,GETDATE() --<LastUpdateDate, datetime,> ,N'{8}' --<CreatedBy, varchar(45),> ,N'{8}' --<UpdatedBy, varchar(45),> ,N'{0}' --<Plant, varchar(45),> ) END ELSE BEGIN UPDATE dbo.ucc_prd_ProductionHead SET WorkOrderID = {1} --<WorkOrderID, bigint,> --,ProductionDate = CONVERT(DATETIME, '{2}',103) --<ProductionDate, datetime,> --,StartTime = CONVERT(DATETIME, '{3}',103) --<StartTime, datetime,> ,FinishTime = CONVERT(DATETIME, '{4}',103) --<FinishTime, datetime,> ,PuaseTime = {5} --<PuaseTime, int,> ,ProcessLineID = N'{6}' --<ProcessLineID, nvarchar(45),> ,CompleteFlag = {7} --<CompleteFlag, int,> ,CreationDate = GETDATE() --<CreationDate, datetime,> ,LastUpdateDate = GETDATE() --<LastUpdateDate, datetime,> ,CreatedBy = N'{8}' --<CreatedBy, varchar(45),> ,UpdatedBy = N'{8}' --<UpdatedBy, varchar(45),> ,Plant = N'{0}' --<Plant, varchar(45),> WHERE WorkOrderID = {1} AND Plant = N'{0}' END" + Environment.NewLine , _session.PlantID , model.WorkOrderID , model.ProductionDate.ToString("dd/MM/yyyy hh:mm:ss:mmm tt") , model.StartTime.ToString("dd/MM/yyyy hh:mm:ss:mmm tt") , model.FinishTime.ToString("dd/MM/yyyy hh:mm:ss:mmm tt") , model.PuaseTime , model.ProcessLineID , model.CompleteFlag , _session.UserID); //Update PartLot.CheckBox01 = 1 to change status has already used. sql += string.Format(@"UPDATE ucc_pln_PlanHead SET OperationState = {1} WHERE WorkOrderID = {0}", model.WorkOrderID, model.OperationState); Repository.Instance.ExecuteWithTransaction(sql, "Save Production"); return GetProdHead(model.WorkOrderID); }