예제 #1
0
        void LoadUnfilledData()
        {
            if (cbxLaborNumber.SelectedIndex != -1)
            {
                DatabaseSet.工時DataTable table = 工時TableAdapter.Instance.GetFilledDataBy員工編號(cbxLaborNumber.SelectedValue.ToString());
                DateTime from = Settings.UnfilledDate;
                DateTime to   = DateTime.Today;

                for (DateTime date = from; date <= to; date = date.AddDays(1))
                {
                    if (!假日TableAdapter.Instance.IsHoliday(_holidayTable, date))
                    {
                        if (date != dtpDate.Value)
                        {
                            DataRow[] rows = table.Select("日期 = #" + date.ToString("yyyy/MM/dd") + "#");
                            if (rows.Length == 0)
                            {
                                llbUnfilledTip.Text    = date.ToString("yyyy/MM/dd") + "的資料尚未填寫完畢";
                                llbUnfilledTip.Tag     = date;
                                llbUnfilledTip.Visible = true;
                                return;
                            }
                        }
                    }
                }
                llbUnfilledTip.Visible = false;
            }
        }
예제 #2
0
        public EditHourDataForm()
        {
            InitializeComponent();

            _lwHelper = new LaborWageHelper();

            _holidayTable = 假日TableAdapter.Instance.GetByRange(Settings.UnfilledDate, DateTime.Today);

            rbProduce.Checked = true;

            // Load the lines
            _suspendLineChangedEvent = true;
            bsLine.DataSource        = DatabaseSet.產線Table;

            // Load the nonproduce items
            bsNonProduce.DataSource = DatabaseSet.非生產Table;

            // Create a table for input
            bsHourData.DataSource = _dataTable = CreateDataTable();

            cbbLine.ValueMember         = cbbLine.DisplayMember = "產線";
            cbbNonProduce.ValueMember   = "編號";
            cbbNonProduce.DisplayMember = "名稱";


            dtpDate.Value = dateFinishDate.Value = DateTime.Today;

            cbbLine.SelectedIndex = -1;

            _suspendLineChangedEvent = false;
        }
예제 #3
0
 public DatabaseSet.工時DataTable CreateDataTable()
 {
     DatabaseSet.工時DataTable table = new DatabaseSet.工時DataTable();
     //table.Columns.Add(new DataColumn("QCN", typeof(string)));
     table.Columns.Add(new DataColumn("待驗數量", typeof(Int32)));
     table.Columns.Add(new DataColumn("品號", typeof(string)));
     table.Columns.Add(new DataColumn("取代編號", typeof(string)));
     table.Columns.Add(new DataColumn("工時類型名稱", typeof(string)));
     return(table);
 }
예제 #4
0
        private void btnSearch_Click(object sender, EventArgs e)
        {
            btnDelHourData.Enabled = true;
            string laborNumber = string.Empty;

            if (ckbLabor.Checked && cbxLaborNumber.SelectedIndex != -1)
            {
                laborNumber = cbxLaborNumber.SelectedValue.ToString();
            }

            DateTime from = dtpFrom.Value;
            DateTime to   = dtpTo.Value;

            DatabaseSet.工時DataTable table = new DatabaseSet.工時DataTable();
            int count = 0;

            if (cbxProduceOrNot.SelectedIndex == 0)
            {
                count = 工時TableAdapter.Instance.Fill(table, laborNumber, ckbDate.Checked, from, to);
            }
            else if (cbxProduceOrNot.SelectedIndex == 1)
            {
                string worksheetNumber = tbxWorksheetNumber.Text;
                string partNumber      = tbxPartNumber.Text;
                count = 工時TableAdapter.Instance.Fill(table, laborNumber, worksheetNumber, partNumber, ckbDate.Checked, from, to);
            }
            else
            {
                int nonProduce = (int)cbxNonProduce.SelectedValue;
                count = 工時TableAdapter.Instance.Fill(table, laborNumber, nonProduce, ckbDate.Checked, from, to);
            }

            table.Columns.Add("工時類型名稱");
            foreach (DataRow row in table)
            {
                row["工時類型名稱"] = ((HourType)row["工時類型"]).ToString();
            }

            bsHourData.DataSource = table;
            dgvHourData.AutoResizeColumns();
            lbSearchResult.Text = "找到 " + count + " 筆資料";
        }
예제 #5
0
 public virtual DatabaseSet.工時DataTable GetData() {
     this.Adapter.SelectCommand = this.CommandCollection[0];
     DatabaseSet.工時DataTable dataTable = new DatabaseSet.工時DataTable();
     this.Adapter.Fill(dataTable);
     return dataTable;
 }
예제 #6
0
        private void btnStore_Click(object sender, EventArgs e)
        {
            try
            {
                if (_remainHours > 0 && !this.TodayIsHoliday)
                {
                    if (MessageBox.Show("尚有時數未填寫完畢,確定要儲存嗎?", "儲存提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
                    {
                        return;
                    }
                }

                //SetFinishDate();

                //重驗後的工時資料刪除時進行復原工作
                int update = 0;

                DatabaseSet.工時DataTable table = (DatabaseSet.工時DataTable)_dataTable.Copy();
                foreach (DataRow row in _dataTable)
                {
                    if (row.RowState == DataRowState.Deleted)
                    {
                        string id = (string)row["編號", DataRowVersion.Original];
                        update += 工時TableAdapter.Instance.DeleteEx(id);
                    }
                }
                foreach (DataRow row in table.Select(null, null, DataViewRowState.Deleted))
                {
                    row.AcceptChanges();
                }

                update += 工時TableAdapter.Instance.Update(table);


                int reinspect;
                int qa = UpdateQATable(out reinspect);

                UpdateFinishDate();

                string msg = "更新了 " + update + " 筆資料";
                if (qa > 0)
                {
                    msg += "\n新增了 " + qa + " 筆待驗資料";
                }
                if (reinspect > 0)
                {
                    msg += "\n重新送驗了 " + reinspect + "筆資料";
                }

                MessageBox.Show(msg);

                UpdateRemainAmount();
                LoadOldHourData();
                LoadNGData();
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.Message);
                Global.ShowError(ex);
            }
        }
예제 #7
0
        public DatabaseSet.工時DataTable GetUnfilledData()
        {
            DatabaseSet.工時DataTable table = new DatabaseSet.工時DataTable();
            table.PrimaryKey = null;
            table.Columns.Remove("編號");
            foreach (DatabaseSet.員工Row laborRow in DatabaseSet.員工Table)
            {
                DatabaseSet.工時DataTable tmpTable = GetFilledDataBy員工編號(laborRow.編號);
                DateTime from = Settings.UnfilledDate;
                DateTime to = DateTime.Today;
                DatabaseSet.假日DataTable holidayTable = 假日TableAdapter.Instance.GetByRange(from, to);
                for (DateTime date = from; date <= to; date = date.AddDays(1))
                {
                    if (!假日TableAdapter.Instance.IsHoliday(holidayTable, date))
                    {
                        DataRow[] rows = tmpTable.Select("日期 = #" + date.ToString("yyyy/MM/dd") + "#");
                        if (rows.Length == 0)
                        {
                            DatabaseSet.工時Row newRow = table.New工時Row();
                            newRow.員工姓名 = laborRow.姓名;
                            newRow.員工編號 = laborRow.編號;
                            newRow.日期 = date;
                            table.Add工時Row(newRow);
                        }
                    }
                }
            }
            //table.DefaultView.Sort = "日期, 員工編號";

            table.AcceptChanges();
            return table;
        }
예제 #8
0
 public DatabaseSet.工時DataTable GetFilledDataBy員工編號(string 員工編號)
 {
     DatabaseSet.工時DataTable table = new DatabaseSet.工時DataTable();
     table.PrimaryKey = null;
     table.Columns.Remove("編號");
     FillFilledDataBy員工編號(table, 員工編號);
     return table;
 }