private void 中断ToolStripMenuItem_Click(object sender, EventArgs e) { if (CureentCt == null) { return; } DoubleClickButton bt = (DoubleClickButton)CureentCt; int recordid = int.Parse(bt.Name); if (中断ToolStripMenuItem.Text == "中断") { frmPause fpr = new frmPause(recordid); if (fpr.ShowDialog() == DialogResult.OK) { 刷新ToolStripMenuItem_Click(null, null); } } else { //设置中断并开始的记录 ClsBLL.ServicePauseStart(recordid); string[] strs = bt.ImageKey.Split(new Char[] { ',' }); string startdate = strs[4]; //中断之前的开始时间 string plancomplete = strs[5]; //预计完成时间 DateTime PlanEndDate = DateTime.Parse(plancomplete).AddMinutes(ClsBLL.Pausemins(recordid, DateTime.Parse(startdate))); //新的预计完成时间 string sqlstring = "Update Booking Set PlanCompleteTime='" + PlanEndDate + "',State='维修进行中' where ID=" + recordid; SQLDbHelper.ExecuteSql(sqlstring); ClsBLL.AddMsg(recordid, "车牌号码:" + strs[1] + ",中断后继续维修"); 刷新ToolStripMenuItem_Click(null, null); } }
private void button1_Click(object sender, EventArgs e) { decimal servicehours = 0; string sqlstring = string.Empty; if (state == "中断" || state == "过时") { ClsBLL.ServicePauseStart(RecordID);//如果是中断则结束中断 } if (txtHours.Text != string.Empty) { servicehours = decimal.Parse(txtHours.Text); if (servicehours < 50) { MessageBox.Show("维修工时错误!"); return; } else { servicehours = decimal.Parse(servicehours.ToString()) / 100; } } decimal hours = servicehours + decimal.Parse(txtServiceHour.Text) / 100; //新的计划完成时间=当前时间+追加工时 DateTime plancompletetime = PlanCompleteTime.AddMinutes(double.Parse(Convert.ToString(servicehours * 60))); if (state == "中断") { plancompletetime = plancompletetime.AddMinutes(ClsBLL.Pausemins(RecordID, StartServiceTime)); } if (plancompletetime.CompareTo(DateTime.Today.AddHours(9)) == -1) //如果小于今天 { plancompletetime = DateTime.Now.AddMinutes(double.Parse(Convert.ToString(servicehours * 60))); } try { sqlstring = "Update booking set State='维修进行中',ServiceHour=" + hours + ",PlanCompleteTime='" + plancompletetime + "',EndServiceTime=Null,ServiceItem=ServiceItem + '," + txtItem.Text + "',Remark=isnull(Remark,'')+',追加维修项目' where ID=" + RecordID; if (txtHours.Text != string.Empty) { sqlstring += ";Insert Into ServiceAddHours(BookID,OldHours,AddHours,AddItem,Worker,AddTime)values(" + RecordID + "," + decimal.Parse(txtServiceHour.Text) / 100 + "," + decimal.Parse(txtHours.Text) / 100 + ",'" + txtAddItem.Text + "','" + worker + "','" + DateTime.Today.ToShortTimeString() + "')"; } if (SQLDbHelper.ExecuteSql(sqlstring) > 0) { DialogResult = DialogResult.OK; ClsBLL.AddMsg(RecordID, "车牌号码:" + this.Text + txtHours.Text + "TU--" + ClsBLL.UserName); this.DialogResult = DialogResult.OK; this.Close(); } } catch (Exception Err) { MessageBox.Show(Err.Message); } }
private void bt_MouseUp(object sender, MouseEventArgs e) { if (IsMove) { if (((Control)sender).Tag.ToString() != "维修进行中" && ((Control)sender).Tag.ToString() != "中断") { ((Control)sender).Top = PcStartTop; ((Control)sender).Left = PcStartLeft; return; } decimal top = decimal.Parse(Convert.ToString(((Control)sender).Top - dataGridView1.ColumnHeadersHeight)); decimal height = decimal.Parse(dataGridView1.Rows[0].Height.ToString()); Rowindex = int.Parse(decimal.Round(top / height, 0).ToString()); if (Math.Abs(((Control)sender).Top - PcStartTop) < dataGridView1.Rows[2].Height / 2) { ((Control)sender).Top = PcStartTop; ((Control)sender).Left = PcStartLeft; return; } if (top == 0) { ((Control)sender).Top = PcStartTop; ((Control)sender).Left = PcStartLeft; return; } if (Rowindex == -1) { Rowindex = 0; } ((Control)sender).Top = Rowindex * dataGridView1.Rows[0].Height + dataGridView1.ColumnHeadersHeight; try { if (Rowindex > -1) { if (((Control)sender).Name != string.Empty) { //记录ID int recordid = int.Parse(((Control)sender).Name); //维修工时 decimal servicehours = ClsBLL.GetServiceHour(recordid); //维修工人 string serviceworker = dataGridView1.Rows[Rowindex].Cells[1].Value.ToString(); if (MessageBox.Show("你确定要把该单转给<" + serviceworker + ">做吗?", "", MessageBoxButtons.YesNo) == DialogResult.No) { ((Control)sender).Top = PcStartTop; ((Control)sender).Left = PcStartLeft; return; } DoubleClickButton bt = (DoubleClickButton)((Control)sender); string[] strs = bt.ImageKey.Split(new Char[] { ',' }); string startdate = strs[4]; //计划完成工作时间 = 开始工作时间 + 维修工时 string plancomplete = strs[5]; //预计完成时间 if (((Control)sender).Tag.ToString() == "中断") { ClsBLL.ServicePauseStart(recordid); plancomplete = DateTime.Parse(plancomplete).AddMinutes(ClsBLL.Pausemins(recordid, DateTime.Parse(startdate))).ToShortDateString(); } string sqlstring = "Insert Into BookingAdd(BookID,OldWorker,StartServiceTime)Select ID,Worker,StartServiceTime from Booking where ID=" + recordid; sqlstring += ";Update Booking Set StartServiceTime='" + DateTime.Now.ToString() + "',PlanCompleteTime='" + plancomplete + "', Worker='" + serviceworker + "',State='维修进行中' where ID=" + recordid; SQLDbHelper.ExecuteSql(sqlstring); ClsBLL.AddMsg(recordid, "车牌号码:" + strs[1] + ",该单转给<" + serviceworker + ">做"); 刷新ToolStripMenuItem_Click(null, null); } } } catch (Exception Err) { MessageBox.Show(Err.Message); } } IsMove = false; }
//添加车辆预约卡片 private void AddCarCard(string ID, string info, int rowindex) { DoubleClickButton bt = new DoubleClickButton(); string[] strs = info.Split(new Char[] { ',' }); string startdate = strs[4]; decimal hours = decimal.Parse(strs[3]); string plancomdate = strs[5];//计划完成时间 DateTime PlanEndDate = DateTime.Now; if (plancomdate != string.Empty) { PlanEndDate = DateTime.Parse(plancomdate); } else { PlanEndDate = DateTime.Parse(startdate).AddMinutes(double.Parse(Convert.ToString(hours * 60 + ClsBLL.Pausemins(int.Parse(ID), DateTime.Parse(startdate))))); } if (strs[0] == "中断") //如果是中断,则停在做中断操作时的时间点,否则停在按计算计划完成的时间点上 { PlanEndDate = ClsBLL.PauseTime(int.Parse(ID)); } TimeSpan DtSp = PlanEndDate.Subtract(starttime); //计划完成时间和开始时间或计划开始时间的差 int hour = DtSp.Hours; //如果超出了时间范围,显示在最后一列 if (hour > dataGridView1.ColumnCount - 3) { hour = dataGridView1.ColumnCount - 3; } if (hour < 0) { hour = 0; } bt.AccessibleDescription = hour.ToString(); bt.TabIndex = rowindex; Cards[rowindex, hour] = Cards[rowindex, hour] + 1; decimal left = dataGridView1.Columns[0].Width + dataGridView1.Columns[1].Width + dataGridView1.Columns[2].Width * hour; bt.Left = int.Parse(Convert.ToString(Math.Round(left, 0))); int top = rowindex * dataGridView1.Rows[0].Height + dataGridView1.ColumnHeadersHeight + 3; bt.Height = dataGridView1.Rows[0].Height - 6; bt.Width = dataGridView1.Columns[2].Width; bt.Top = top; bt.Tag = strs[0]; //状态 bt.Name = ID; bt.ImageKey = info; dataGridView1.Controls.Add(bt); string planout = strs[7]; if (planout != string.Empty) { planout = DateTime.Parse(planout).ToString("MM-dd HH:mm"); } bt.Text = strs[1] + "\n" + planout; if (strs[8].IndexOf("分单") > -1) { string fendan = string.Empty; if (strs[8].Length > strs[8].IndexOf("分单") + 2) { fendan = strs[8].Substring(strs[8].IndexOf("分单") + 2, 1); if (!ClsBLL.IsNumber(fendan)) { fendan = string.Empty; } } if (fendan == string.Empty) { bt.Text = strs[1] + " 合\n" + planout; } else { bt.Text = strs[1] + " 合" + fendan + "\n" + planout; } } bt.Font = new Font("宋体", 11, FontStyle.Regular); ToolTip tt = new ToolTip(); tt.SetToolTip(bt, strs[strs.Length - 1]); Color cl = Color.PowderBlue; //"正式","已派工", "维修进行中", "中断", "完工", "洗车","过时","延时到明天" if (strs[0] == States[2]) { cl = Color.Green; if (strs[8].IndexOf("返修") > -1) { cl = Color.MediumSeaGreen; } if (strs[8].IndexOf("追加项目") > -1) { cl = Color.OliveDrab; } } if (strs[0] == States[3]) { cl = Color.LightGray; } if (strs[0] == States[4]) { cl = Color.Blue; } if (strs[0] == States[5]) { cl = Color.MediumOrchid; } if (strs[0] == States[6]) { cl = Color.Red; } if (strs[0] == States[7]) { cl = Color.Orange; } bt.BackColor = cl; bt.ContextMenuStrip = contextMenuStrip2; bt.MouseDown += new MouseEventHandler(bt_MouseDown); bt.MouseMove += new MouseEventHandler(bt_MouseMove); bt.MouseUp += new MouseEventHandler(bt_MouseUp); bt.DoubleClick += new EventHandler(bt_DoubleClick); //ChangeWidth(rowindex,hour,bt); }