Example #1
0
 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;
     }
 }
Example #2
0
        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);
        }
Example #3
0
        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();
            }
        }
Example #4
0
        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");
            }
        }
Example #5
0
        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);
        }
Example #6
0
        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();
            }
        }
Example #7
0
        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;
        }
Example #8
0
        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;
            }
        }
Example #9
0
        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);
        }