コード例 #1
0
ファイル: frmWork.cs プロジェクト: liquanchun/PORSCHE
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
ファイル: frmWork.cs プロジェクト: liquanchun/PORSCHE
        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;
        }
コード例 #4
0
ファイル: frmWork.cs プロジェクト: liquanchun/PORSCHE
        //添加车辆预约卡片
        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);
        }