public bool SaveWorkOrder(WorkOrderVO workOrderVO)
 {
     using (WorkOrderDAC workOrderDAC = new WorkOrderDAC())
     {
         return(workOrderDAC.SaveWorkOrder(workOrderVO));
     }
 }
 public bool SaveResultUse(WorkOrderVO workOrderVO)
 {
     using (WorkOrderDAC workOrderDAC = new WorkOrderDAC())
     {
         return(workOrderDAC.SaveResultUse(workOrderVO));
     }
 }
 public DataTable GetAllWorkOrders(WorkOrderVO workOrderVO = null)
 {
     using (WorkOrderDAC workOrderDAC = new WorkOrderDAC())
     {
         return(workOrderDAC.GetAllWorkOrders(workOrderVO));
     }
 }
        public WorkOrderPopupForm(EmployeeVO employeeVO, int work_order_no = 0)
        {
            try
            {
                InitializeComponent();
                this.employeeVO    = employeeVO;
                this.work_order_no = work_order_no;
                this.Text          = work_order_no > 0 ? "작업 지시 수정" : "작업 지시 등록";
                cboFactory.ComboBinding(new FactoryService().GetFactories(this.employeeVO.GetCorporationID()), "FACTORY_NAME", "FACTORY_ID", "선택", 0);
                cboLine.ComboBinding("선택", 0);
                cboProcess.ComboBinding("선택", 0);
                cboProduct.ComboBinding(new ProductService().GetProducts(), "PRODUCT_NAME", "PRODUCT_ID", "선택", 0);

                if (work_order_no > 0)
                {
                    DateTime    now         = DateTime.Now;
                    WorkOrderVO workOrderVO = workOrderService.GetWorkOrder(work_order_no);
                    cboFactory.SelectedValue = workOrderVO.Factory_id;
                    cboLine.SelectedValue    = workOrderVO.Line_id;
                    cboProcess.SelectedValue = workOrderVO.Process_id;
                    cboWorker.SelectedValue  = workOrderVO.Worker_id;
                    cboProduct.SelectedValue = workOrderVO.Product_id;
                    dtpWorkDate.Value        = workOrderVO.Work_order_date;
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }
Example #5
0
 private void Search(object sender, EventArgs e)
 {
     if (((MainForm)this.MdiParent).ActiveMdiChild == this)
     {
         WorkOrderVO workOrderVO = new WorkOrderVO
         {
             Line_id        = cboLine.SelectedValue.ToInt(),
             Process_id     = cboLine.SelectedValue.ToInt(),
             Product_id     = cboProduct.SelectedValue.ToInt(),
             SearchFromDate = fromToDateControl1.From.ToShortDateString(),
             SearchToDate   = fromToDateControl1.To.ToShortDateString(),
             SearchWord     = txtSearch.Text.Trim()
         };
         dt = workOrderService.GetAllWorkOrders(workOrderVO);
         dataGridViewControl1.DataSource = dt;
     }
 }
Example #6
0
 public bool SaveResultUse(WorkOrderVO workOrderVO)
 {
     return(NotSelectSPJ <WorkOrderVO>("SP_SAVE_RESULT_USE", workOrderVO, "Work_order_no", "Result_quantity", "Defective_quantity"));
 }
Example #7
0
        public DataTable GetAllWorkOrders(WorkOrderVO workOrderVO = null)
        {
            string sql = @"SELECT WO.WORK_ORDER_NO, WO.WORK_ORDER_DATE, WO.WORK_DATE, WO.RELEASE_NO, WO.RELEASE_SEQ, WO.QTY, PW.WORKER_ID
								, CONVERT(CHAR(5), WO.WORK_START_TIME, 108) WORK_START_TIME, CONVERT(CHAR(5), WO.WORK_FINISH_TIME, 108) WORK_FINISH_TIME
								, CASE WHEN DATEDIFF(DAY, WORK_DATE, GETDATE()) < 0 THEN '작업 전' 
									   WHEN DATEDIFF(DAY, WORK_DATE, GETDATE()) > 0 THEN '작업 완료' 
									   ELSE '작업 중' END WORK_ORDER_STATUS
								, WO.FIRST_REGIST_TIME, WO.FIRST_REGIST_EMPLOYEE
								, (SELECT EMPLOYEE_NAME FROM TBL_EMPLOYEE WHERE EMPLOYEE_ID = WO.FIRST_REGIST_EMPLOYEE) FIRST_REGIST_EMPLOYEE_NAME
								, WO.FINAL_REGIST_TIME, WO.FINAL_REGIST_EMPLOYEE
								, (SELECT EMPLOYEE_NAME FROM TBL_EMPLOYEE WHERE EMPLOYEE_ID = WO.FINAL_REGIST_EMPLOYEE ) FINAL_REGIST_EMPLOYEE_NAME
								, WO.WORKER_ID, E.EMPLOYEE_NAME, WO.PRODUCT_ID, PD.PRODUCT_NAME, WO.WORK_ORDER_QUANTITY, ISNULL(R.RESULT_QUANTITY, 0) RESULT_QUANTITY
								, ISNULL(D.DEFECTIVE_QUANTITY, 0) DEFECTIVE_QUANTITY, PC.PROCESS_ID, PC.PROCESS_NAME, L.LINE_ID, L.LINE_NAME, F.FACTORY_ID, F.FACTORY_NAME
						   FROM TBL_WORK_ORDER WO
								INNER JOIN TBL_PROCESS_WORKER PW
									ON WO.WORKER_ID = PW.WORKER_ID
								INNER JOIN TBL_EMPLOYEE E
									ON PW.EMPLOYEE_ID = E.EMPLOYEE_ID
								INNER JOIN TBL_PROCESS PC
									ON PW.PROCESS_ID = PC.PROCESS_ID
								INNER JOIN TBL_LINE L
									ON PC.LINE_ID = L.LINE_ID
								INNER JOIN TBL_FACTORY F
									ON F.FACTORY_ID = L.FACTORY_ID
								INNER JOIN TBL_PRODUCT PD
									ON WO.PRODUCT_ID = PD.PRODUCT_ID
								LEFT OUTER JOIN TBL_RESULT R
									ON WO.WORK_ORDER_NO = R.WORK_ORDER_NO
								LEFT OUTER JOIN TBL_DEFECTIVE D
									ON WO.WORK_ORDER_NO = D.WORK_ORDER_NO
						   WHERE 1 = 1"                        ;

            if (workOrderVO != null)
            {
                if (workOrderVO.Line_id > 0)
                {
                    sql += " AND L.LINE_ID = @LINE_ID";
                }
                if (workOrderVO.Process_id > 0)
                {
                    sql += " AND PC.PROCESS_ID = @PROCESS_ID";
                }
                if (workOrderVO.Product_id > 0)
                {
                    sql += " AND PD.PRODUCT_ID = @PRODUCT_ID";
                }
                if (!string.IsNullOrEmpty(workOrderVO.SearchFromDate) && !string.IsNullOrEmpty(workOrderVO.SearchToDate))
                {
                    sql += " AND WO.WORK_DATE BETWEEN @SEARCHFROMDATE AND @SEARCHTODATE";
                }
            }

            sql += " ORDER BY WORK_ORDER_NO DESC";
            DataTable      dt = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter(sql, conn);

            ParametersJ(da.SelectCommand, workOrderVO);

            da.Fill(dt);

            return(dt);
        }
Example #8
0
 public bool SaveWorkOrder(WorkOrderVO workOrderVO)
 {
     return(NotSelectSPJ <WorkOrderVO>("SP_SAVE_WORKORDER", workOrderVO, "Work_order_no", "Worker_id", "Product_id", "Release_no", "Release_seq", "Qty", "Work_date", "Work_order_quantity", "Regist_employee"));
 }
        private void btnConfirm_Click(object sender, EventArgs e)
        {
            try
            {
                WorkOrderVO workOrderVO = new WorkOrderVO();
                int         index;

                if (cboFactory.SelectedValue.ToInt() < 1)
                {
                    MessageBox.Show("공장을 선택해주세요.");
                    return;
                }
                if (cboLine.SelectedValue.ToInt() < 1)
                {
                    MessageBox.Show("라인을 선택해주세요.");
                    return;
                }
                if (cboProcess.SelectedValue.ToInt() < 1)
                {
                    MessageBox.Show("공정을 선택해주세요.");
                    return;
                }
                if (cboWorker.SelectedValue.ToInt() < 1)
                {
                    MessageBox.Show("작업자를 선택해주세요.");
                    return;
                }
                if (cboProduct.SelectedValue.ToInt() < 1)
                {
                    MessageBox.Show("품목을 선택해주세요.");
                    return;
                }
                if (nudQty.Value < 1)
                {
                    MessageBox.Show("작업량을 입력해주세요.");
                    return;
                }
                if ((index = GetChkIndex()) > -1)
                {
                    DataGridViewRow dgvr = dataGridViewControl1.Rows[index];
                    workOrderVO.Release_no  = dgvr.Cells["RELEASE_NO"].Value.ToInt();
                    workOrderVO.Release_seq = dgvr.Cells["RELEASE_SEQ"].Value.ToInt();
                }
                else
                {
                    MessageBox.Show("출고 예정 품목을 선택해주세요.");
                    return;
                }

                workOrderVO.Work_order_no   = work_order_no;
                workOrderVO.Worker_id       = cboWorker.SelectedValue.ToInt();
                workOrderVO.Product_id      = cboProduct.SelectedValue.ToInt();
                workOrderVO.Qty             = (int)nudQty.Value;
                workOrderVO.Work_date       = dtpWorkDate.Value;
                workOrderVO.Regist_employee = employeeVO.Employee_id;

                if (workOrderService.SaveWorkOrder(workOrderVO))
                {
                    MessageBox.Show("정상적으로 저장되었습니다.");
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }
Example #10
0
        private void MachineStart(MachineType machinet)
        {
            if (!GlobalUsage.WorkOrderNo.Equals("설정안됨"))
            {
                //기계 설정
                setProcess  += SetProgress;
                machineStop += MachineStop;
                machine0     = new Machine
                                   (0, GlobalUsage.WorkOrderNo, GlobalUsage.UserID, GlobalUsage.WcCode,
                                   (value) => btnMachineRun?.Invoke(machineStop, value),
                                   (stackqty, totalqty, prdqty, outqty) => { btnMachineRun?.Invoke(setProcess, stackqty, totalqty); SetGlobalUsage(prdqty, outqty); });

                if (!isMachineRun)
                {
                    WorkOrderVO workorder = (dgvMain.DataSource as List <WorkOrderVO>).Find(x => x.Workorderno == GlobalUsage.WorkOrderNo);
                    InputBox    input     = new InputBox();
                    input.StartPosition = FormStartPosition.CenterParent;
                    input.ShowInTaskbar = false;
                    if (input.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }
                    switch (machinet)
                    {
                    case MachineType.Molding:     // 성형일경우
                        // 금형 설정
                        MoldService   service  = new MoldService();
                        List <MoldVO> moldlist = service.GetMoldList(wccode: GlobalUsage.WcCode);
                        if (moldlist.Count < 1)
                        {
                            MessageBox.Show("작업장에 장착된 금형이 없습니다.");
                            btnMachineRun.BackColor = Color.FromArgb(218, 239, 245);
                            isMachineRun            = false;
                            return;
                        }
                        MoldVO mold = moldlist[0];
                        // 대차 확인
                        GV_MasterService gvservice = new GV_MasterService();
                        List <GVVO>      gvlist    = gvservice.GetAllByGV("성형그룹", "빈대차");
                        if (input.Qty.Value > (workorder.Dry_GV_Qty * gvlist.Count))
                        {
                            MessageBox.Show("성형대차가 부족합니다.");
                            return;
                        }
                        // 기계 실행
                        Program.Log.WriteInfo($"{GlobalUsage.UserName}이(가) 작업({GlobalUsage.WorkOrderNo})의 성형기계로 금형({mold.Mold_Code})을 이용해 품목({workorder.Item_Code})을 생산함");
                        machine0.MachineStart(input.Qty.Value, new Item_MoldPair(workorder.Item_Code, mold.Mold_Code, workorder.Line_Per_Qty));
                        break;
                    }
                    // 공통
                    btnMachineRun.BackColor = Color.FromArgb(243, 228, 231);
                    isMachineRun            = true;
                    progressMachine.Visible = true;
                }
            }
            else
            {
                Program.Log.WriteInfo($"{GlobalUsage.UserName}이(가) 작업지시를 시작하지 않고 기계를 시작하려함");
                MessageBox.Show("작업지시를 시작해주세요");
            }
        }