--- Revision None +++ Revision 396162313561 @@ -0,0 +1,1056 @@ +#region Using directives + +using System; +using System.Drawing; +using System.Collections; +using System.Windows.Forms; +using System.Data; +using JuiceApps.BO; +using System.IO; + +#endregion + +namespace JuiceApps +{ + /// + /// Summary description for WorkOrderView. + /// + public class WorkOrderView : System.Windows.Forms.Form + { + #region Instance Variables + + private Button btnLeft; + private Button btnRight; + private Panel panel1; + private Label lblWON; + private Label label2; + private Panel pnlMain; + private TextBox txtAmount; + private Label label15; + private TextBox txtMaterials; + private Label label14; + private TextBox txtComments; + private Label label13; + private TextBox txtTimeSpent; + private Label label12; + private Label label11; + private Label label18; + private Label label10; + private TextBox txtCreated; + private Label label9; + private TextBox txtAssignedTo; + private Label label8; + private TextBox txtWOType; + private Label label7; + private TextBox txtMeterSN; + private Label label5; + private Label label6; + private TextBox txtTransformer; + private TextBox txtSubstation; + private TextBox txtLocID; + private Label label4; + private TextBox txtName; + private Label label3; + private VScrollBar vScrollBar1; + private Label lblWOCount; + + private ComboBox cbStatus; + private MainMenu mainMenu1; + private MenuItem miEditDone; + private MenuItem miSave; + private ComboBox cbSubstatus; + + + private ComboBox comboBox1; + private Label label1; + private TextBox txtPeak; + private TextBox txtkVA; + private TextBox txtkWh; + private Label label17; + private Label label19; + private Label label20; + private Label label16; + private TextBox txtAverageReading; + private Label label21; + private TextBox txtAddress; + private Label label22; + private TextBox txtAccNum; + private Label label23; + + private int currentWorkOrder = 0; + private ArrayList doNotEdit; + private bool changed = false; + private bool editing = false; + private MenuItem miBack; + private MenuItem menuItem1; + private Label label24; + private TextBox txtRoute; + private TextBox txtModule; + private Label label25; + private bool newMeter = false; + + #endregion + + // Called when a meter serial number is unrecognized (i.e. not in the database) + public WorkOrderView(string sn) + { + newMeter = true; + InitializeComponent(); + } + + // Called when a meter/work order is recognized (i.e. in the database) + public WorkOrderView(int current) + { + currentWorkOrder = current; + InitializeComponent(); + initData(currentWorkOrder); + + this.btnRight.Enabled = (currentWorkOrder < Helper.WorkOrders.Count() - 1) ? true : false; + this.btnLeft.Enabled = (currentWorkOrder > 0) ? true : false; + lblWOCount.Text = String.Format("{0}/{1}", (currentWorkOrder + 1), Helper.WorkOrders.Count()); + } + + #region Auto-Generated + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.panel1 = new System.Windows.Forms.Panel(); + this.label2 = new System.Windows.Forms.Label(); + this.lblWOCount = new System.Windows.Forms.Label(); + this.lblWON = new System.Windows.Forms.Label(); + this.btnLeft = new System.Windows.Forms.Button(); + this.btnRight = new System.Windows.Forms.Button(); + this.pnlMain = new System.Windows.Forms.Panel(); + this.label24 = new System.Windows.Forms.Label(); + this.txtRoute = new System.Windows.Forms.TextBox(); + this.txtModule = new System.Windows.Forms.TextBox(); + this.label25 = new System.Windows.Forms.Label(); + this.txtAccNum = new System.Windows.Forms.TextBox(); + this.label23 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); + this.txtAverageReading = new System.Windows.Forms.TextBox(); + this.label21 = new System.Windows.Forms.Label(); + this.txtPeak = new System.Windows.Forms.TextBox(); + this.txtkVA = new System.Windows.Forms.TextBox(); + this.txtkWh = new System.Windows.Forms.TextBox(); + this.label17 = new System.Windows.Forms.Label(); + this.label19 = new System.Windows.Forms.Label(); + this.label20 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.cbSubstatus = new System.Windows.Forms.ComboBox(); + this.cbStatus = new System.Windows.Forms.ComboBox(); + this.txtAmount = new System.Windows.Forms.TextBox(); + this.label15 = new System.Windows.Forms.Label(); + this.txtMaterials = new System.Windows.Forms.TextBox(); + this.label14 = new System.Windows.Forms.Label(); + this.txtComments = new System.Windows.Forms.TextBox(); + this.label13 = new System.Windows.Forms.Label(); + this.txtTimeSpent = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label18 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.txtCreated = new System.Windows.Forms.TextBox(); + this.label9 = new System.Windows.Forms.Label(); + this.txtAssignedTo = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.txtWOType = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.txtMeterSN = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.txtTransformer = new System.Windows.Forms.TextBox(); + this.txtSubstation = new System.Windows.Forms.TextBox(); + this.txtLocID = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.txtName = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.txtAddress = new System.Windows.Forms.TextBox(); + this.vScrollBar1 = new System.Windows.Forms.VScrollBar(); + this.mainMenu1 = new System.Windows.Forms.MainMenu(); + this.miEditDone = new System.Windows.Forms.MenuItem(); + this.miSave = new System.Windows.Forms.MenuItem(); + this.miBack = new System.Windows.Forms.MenuItem(); + this.menuItem1 = new System.Windows.Forms.MenuItem(); + // + // panel1 + // + this.panel1.BackColor = System.Drawing.SystemColors.ScrollBar; + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.lblWOCount); + this.panel1.Controls.Add(this.lblWON); + this.panel1.Controls.Add(this.btnLeft); + this.panel1.Controls.Add(this.btnRight); + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Size = new System.Drawing.Size(240, 30); + // + // label2 + // + this.label2.Font = new System.Drawing.Font("Tahoma", 14F, System.Drawing.FontStyle.Bold); + this.label2.Location = new System.Drawing.Point(102, 0); + this.label2.Size = new System.Drawing.Size(17, 30); + this.label2.Text = "|"; + this.label2.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // lblWOCount + // + this.lblWOCount.Font = new System.Drawing.Font("Tahoma", 14F, System.Drawing.FontStyle.Bold); + this.lblWOCount.Location = new System.Drawing.Point(102, 2); + this.lblWOCount.Size = new System.Drawing.Size(107, 30); + this.lblWOCount.Text = "0/0"; + this.lblWOCount.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // lblWON + // + this.lblWON.Font = new System.Drawing.Font("Tahoma", 14F, System.Drawing.FontStyle.Bold); + this.lblWON.Location = new System.Drawing.Point(32, 2); + this.lblWON.Size = new System.Drawing.Size(64, 30); + this.lblWON.Text = "000"; + // + // btnLeft + // + this.btnLeft.Enabled = false; + this.btnLeft.Font = new System.Drawing.Font("Tahoma", 18F, System.Drawing.FontStyle.Bold); + this.btnLeft.Location = new System.Drawing.Point(0, 0); + this.btnLeft.Size = new System.Drawing.Size(30, 30); + this.btnLeft.Text = "<"; + this.btnLeft.Click += new System.EventHandler(this.btnLeft_Click); + // + // btnRight + // + this.btnRight.Enabled = false; + this.btnRight.Font = new System.Drawing.Font("Tahoma", 18F, System.Drawing.FontStyle.Bold); + this.btnRight.Location = new System.Drawing.Point(210, 0); + this.btnRight.Size = new System.Drawing.Size(30, 30); + this.btnRight.Text = ">"; + this.btnRight.Click += new System.EventHandler(this.btnRight_Click); + // + // pnlMain + // + this.pnlMain.Controls.Add(this.label24); + this.pnlMain.Controls.Add(this.txtRoute); + this.pnlMain.Controls.Add(this.txtModule); + this.pnlMain.Controls.Add(this.label25); + this.pnlMain.Controls.Add(this.txtAccNum); + this.pnlMain.Controls.Add(this.label23); + this.pnlMain.Controls.Add(this.label22); + this.pnlMain.Controls.Add(this.txtAverageReading); + this.pnlMain.Controls.Add(this.label21); + this.pnlMain.Controls.Add(this.txtPeak); + this.pnlMain.Controls.Add(this.txtkVA); + this.pnlMain.Controls.Add(this.txtkWh); + this.pnlMain.Controls.Add(this.label17); + this.pnlMain.Controls.Add(this.label19); + this.pnlMain.Controls.Add(this.label20); + this.pnlMain.Controls.Add(this.label16); + this.pnlMain.Controls.Add(this.comboBox1); + this.pnlMain.Controls.Add(this.label1); + this.pnlMain.Controls.Add(this.cbSubstatus); + this.pnlMain.Controls.Add(this.cbStatus); + this.pnlMain.Controls.Add(this.txtAmount); + this.pnlMain.Controls.Add(this.label15); + this.pnlMain.Controls.Add(this.txtMaterials); + this.pnlMain.Controls.Add(this.label14); + this.pnlMain.Controls.Add(this.txtComments); + this.pnlMain.Controls.Add(this.label13); + this.pnlMain.Controls.Add(this.txtTimeSpent); + this.pnlMain.Controls.Add(this.label12); + this.pnlMain.Controls.Add(this.label11); + this.pnlMain.Controls.Add(this.label18); + this.pnlMain.Controls.Add(this.label10); + this.pnlMain.Controls.Add(this.txtCreated); + this.pnlMain.Controls.Add(this.label9); + this.pnlMain.Controls.Add(this.txtAssignedTo); + this.pnlMain.Controls.Add(this.label8); + this.pnlMain.Controls.Add(this.txtWOType); + this.pnlMain.Controls.Add(this.label7); + this.pnlMain.Controls.Add(this.txtMeterSN); + this.pnlMain.Controls.Add(this.label5); + this.pnlMain.Controls.Add(this.label6); + this.pnlMain.Controls.Add(this.txtTransformer); + this.pnlMain.Controls.Add(this.txtSubstation); + this.pnlMain.Controls.Add(this.txtLocID); + this.pnlMain.Controls.Add(this.label4); + this.pnlMain.Controls.Add(this.txtName); + this.pnlMain.Controls.Add(this.label3); + this.pnlMain.Controls.Add(this.txtAddress); + this.pnlMain.Location = new System.Drawing.Point(0, 30); + this.pnlMain.Size = new System.Drawing.Size(218, 713); + // + // label24 + // + this.label24.Enabled = false; + this.label24.Location = new System.Drawing.Point(3, 154); + this.label24.Size = new System.Drawing.Size(81, 20); + this.label24.Text = "Route:"; + this.label24.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtRoute + // + this.txtRoute.Enabled = false; + this.txtRoute.Location = new System.Drawing.Point(90, 153); + this.txtRoute.Size = new System.Drawing.Size(128, 21); + // + // txtModule + // + this.txtModule.Enabled = false; + this.txtModule.Location = new System.Drawing.Point(90, 126); + this.txtModule.Size = new System.Drawing.Size(128, 21); + // + // label25 + // + this.label25.Enabled = false; + this.label25.Location = new System.Drawing.Point(3, 127); + this.label25.Size = new System.Drawing.Size(81, 20); + this.label25.Text = "Module:"; + this.label25.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtAccNum + // + this.txtAccNum.Enabled = false; + this.txtAccNum.Location = new System.Drawing.Point(90, 3); + this.txtAccNum.Size = new System.Drawing.Size(128, 21); + // + // label23 + // + this.label23.Enabled = false; + this.label23.Location = new System.Drawing.Point(3, 4); + this.label23.Size = new System.Drawing.Size(81, 20); + this.label23.Text = "Acct Num:"; + this.label23.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // label22 + // + this.label22.Enabled = false; + this.label22.Location = new System.Drawing.Point(3, 58); + this.label22.Size = new System.Drawing.Size(81, 20); + this.label22.Text = "Address:"; + this.label22.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtAverageReading + // + this.txtAverageReading.Enabled = false; + this.txtAverageReading.Location = new System.Drawing.Point(90, 603); + this.txtAverageReading.Size = new System.Drawing.Size(128, 21); + // + // label21 + // + this.label21.Enabled = false; + this.label21.Location = new System.Drawing.Point(3, 604); + this.label21.Size = new System.Drawing.Size(81, 20); + this.label21.Text = "3 Month Avg:"; + this.label21.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtPeak + // + this.txtPeak.Enabled = false; + this.txtPeak.Location = new System.Drawing.Point(90, 684); + this.txtPeak.Size = new System.Drawing.Size(128, 21); + // + // txtkVA + // + this.txtkVA.Enabled = false; + this.txtkVA.Location = new System.Drawing.Point(90, 657); + this.txtkVA.Size = new System.Drawing.Size(128, 21); + // + // txtkWh + // + this.txtkWh.Enabled = false; + this.txtkWh.Location = new System.Drawing.Point(90, 630); + this.txtkWh.Size = new System.Drawing.Size(128, 21); + // + // label17 + // + this.label17.Enabled = false; + this.label17.Location = new System.Drawing.Point(3, 695); + this.label17.Size = new System.Drawing.Size(81, 20); + this.label17.Text = "Peak:"; + this.label17.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // label19 + // + this.label19.Enabled = false; + this.label19.Location = new System.Drawing.Point(3, 658); + this.label19.Size = new System.Drawing.Size(81, 20); + this.label19.Text = "kVA:"; + this.label19.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // label20 + // + this.label20.Enabled = false; + this.label20.Location = new System.Drawing.Point(3, 631); + this.label20.Size = new System.Drawing.Size(81, 20); + this.label20.Text = "kWh:"; + this.label20.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // label16 + // + this.label16.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold); + this.label16.Location = new System.Drawing.Point(0, 578); + this.label16.Size = new System.Drawing.Size(218, 20); + this.label16.Text = "Reading Information"; + this.label16.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // comboBox1 + // + this.comboBox1.Enabled = false; + this.comboBox1.Items.Add("Location not found"); + this.comboBox1.Items.Add("No access"); + this.comboBox1.Items.Add("Abandoned"); + this.comboBox1.Items.Add("Meter changed"); + this.comboBox1.Items.Add("Meter not found"); + this.comboBox1.Items.Add("Module unlocked"); + this.comboBox1.Items.Add("Possible fraud"); + this.comboBox1.Location = new System.Drawing.Point(90, 422); + this.comboBox1.Size = new System.Drawing.Size(128, 22); + // + // label1 + // + this.label1.Enabled = false; + this.label1.Location = new System.Drawing.Point(3, 424); + this.label1.Size = new System.Drawing.Size(81, 20); + this.label1.Text = "Detail:"; + this.label1.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // cbSubstatus + // + this.cbSubstatus.Enabled = false; + this.cbSubstatus.Items.Add("Failed"); + this.cbSubstatus.Items.Add("Extended"); + this.cbSubstatus.Items.Add("Invalid"); + this.cbSubstatus.Items.Add("Effective"); + this.cbSubstatus.Location = new System.Drawing.Point(90, 395); + this.cbSubstatus.Size = new System.Drawing.Size(128, 22); + // + // cbStatus + // + this.cbStatus.Enabled = false; + this.cbStatus.Items.Add("Open"); + this.cbStatus.Items.Add("In progress"); + this.cbStatus.Items.Add("Failed"); + this.cbStatus.Items.Add("Closed"); + this.cbStatus.Location = new System.Drawing.Point(90, 368); + this.cbStatus.Size = new System.Drawing.Size(128, 22); + // + // txtAmount + // + this.txtAmount.Enabled = false; + this.txtAmount.Location = new System.Drawing.Point(90, 551); + this.txtAmount.Size = new System.Drawing.Size(128, 21); + // + // label15 + // + this.label15.Enabled = false; + this.label15.Location = new System.Drawing.Point(3, 552); + this.label15.Size = new System.Drawing.Size(81, 20); + this.label15.Text = "$ Amount:"; + this.label15.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtMaterials + // + this.txtMaterials.Enabled = false; + this.txtMaterials.Location = new System.Drawing.Point(90, 524); + this.txtMaterials.Size = new System.Drawing.Size(128, 21); + // + // label14 + // + this.label14.Enabled = false; + this.label14.Location = new System.Drawing.Point(3, 525); + this.label14.Size = new System.Drawing.Size(81, 20); + this.label14.Text = "Materials:"; + this.label14.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtComments + // + this.txtComments.Enabled = false; + this.txtComments.Location = new System.Drawing.Point(90, 477); + this.txtComments.Multiline = true; + this.txtComments.Size = new System.Drawing.Size(128, 41); + // + // label13 + // + this.label13.Enabled = false; + this.label13.Location = new System.Drawing.Point(3, 478); + this.label13.Size = new System.Drawing.Size(81, 20); + this.label13.Text = "Comments:"; + this.label13.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtTimeSpent + // + this.txtTimeSpent.Enabled = false; + this.txtTimeSpent.Location = new System.Drawing.Point(90, 450); + this.txtTimeSpent.Size = new System.Drawing.Size(128, 21); + // + // label12 + // + this.label12.Enabled = false; + this.label12.Location = new System.Drawing.Point(3, 451); + this.label12.Size = new System.Drawing.Size(81, 20); + this.label12.Text = "Time Spent:"; + this.label12.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // label11 + // + this.label11.Enabled = false; + this.label11.Location = new System.Drawing.Point(3, 397); + this.label11.Size = new System.Drawing.Size(81, 20); + this.label11.Text = "Substatus:"; + this.label11.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // label18 + // + this.label18.Enabled = false; + this.label18.Location = new System.Drawing.Point(3, 370); + this.label18.Size = new System.Drawing.Size(81, 20); + this.label18.Text = "Status:"; + this.label18.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // label10 + // + this.label10.Enabled = false; + this.label10.Location = new System.Drawing.Point(3, 343); + this.label10.Size = new System.Drawing.Size(81, 20); + this.label10.Text = "Created:"; + this.label10.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtCreated + // + this.txtCreated.Enabled = false; + this.txtCreated.Location = new System.Drawing.Point(90, 342); + this.txtCreated.Size = new System.Drawing.Size(128, 21); + // + // label9 + // + this.label9.Enabled = false; + this.label9.Location = new System.Drawing.Point(3, 316); + this.label9.Size = new System.Drawing.Size(81, 20); + this.label9.Text = "Assigned To:"; + this.label9.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtAssignedTo + // + this.txtAssignedTo.Enabled = false; + this.txtAssignedTo.Location = new System.Drawing.Point(90, 315); + this.txtAssignedTo.Size = new System.Drawing.Size(128, 21); + // + // label8 + // + this.label8.Enabled = false; + this.label8.Location = new System.Drawing.Point(3, 289); + this.label8.Size = new System.Drawing.Size(81, 20); + this.label8.Text = "WO Type:"; + this.label8.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtWOType + // + this.txtWOType.Enabled = false; + this.txtWOType.Location = new System.Drawing.Point(90, 288); + this.txtWOType.Size = new System.Drawing.Size(128, 21); + // + // label7 + // + this.label7.Enabled = false; + this.label7.Location = new System.Drawing.Point(3, 262); + this.label7.Size = new System.Drawing.Size(81, 20); + this.label7.Text = "Meter S/N:"; + this.label7.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtMeterSN + // + this.txtMeterSN.Enabled = false; + this.txtMeterSN.Location = new System.Drawing.Point(90, 261); + this.txtMeterSN.Size = new System.Drawing.Size(128, 21); + // + // label5 + // + this.label5.Enabled = false; + this.label5.Location = new System.Drawing.Point(3, 235); + this.label5.Size = new System.Drawing.Size(81, 20); + this.label5.Text = "Transformer:"; + this.label5.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // label6 + // + this.label6.Enabled = false; + this.label6.Location = new System.Drawing.Point(3, 208); + this.label6.Size = new System.Drawing.Size(81, 20); + this.label6.Text = "Substation:"; + this.label6.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtTransformer + // + this.txtTransformer.Enabled = false; + this.txtTransformer.Location = new System.Drawing.Point(90, 234); + this.txtTransformer.Size = new System.Drawing.Size(128, 21); + // + // txtSubstation + // + this.txtSubstation.Enabled = false; + this.txtSubstation.Location = new System.Drawing.Point(90, 207); + this.txtSubstation.Size = new System.Drawing.Size(128, 21); + // + // txtLocID + // + this.txtLocID.Enabled = false; + this.txtLocID.Location = new System.Drawing.Point(90, 180); + this.txtLocID.Size = new System.Drawing.Size(128, 21); + // + // label4 + // + this.label4.Enabled = false; + this.label4.Location = new System.Drawing.Point(3, 181); + this.label4.Size = new System.Drawing.Size(81, 20); + this.label4.Text = "Location ID:"; + this.label4.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtName + // + this.txtName.Enabled = false; + this.txtName.Location = new System.Drawing.Point(90, 30); + this.txtName.Size = new System.Drawing.Size(128, 21); + // + // label3 + // + this.label3.Enabled = false; + this.label3.Location = new System.Drawing.Point(3, 31); + this.label3.Size = new System.Drawing.Size(81, 20); + this.label3.Text = "Name:"; + this.label3.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtAddress + // + this.txtAddress.Enabled = false; + this.txtAddress.Location = new System.Drawing.Point(90, 57); + this.txtAddress.Multiline = true; + this.txtAddress.Size = new System.Drawing.Size(128, 63); + // + // vScrollBar1 + // + this.vScrollBar1.LargeChange = 30; + this.vScrollBar1.Location = new System.Drawing.Point(221, 29); + this.vScrollBar1.Maximum = 475; + this.vScrollBar1.Size = new System.Drawing.Size(19, 265); + this.vScrollBar1.SmallChange = 15; + this.vScrollBar1.ValueChanged += new System.EventHandler(this.vScrollBar1_ValueChanged); + // + // mainMenu1 + // + this.mainMenu1.MenuItems.Add(this.miEditDone); + this.mainMenu1.MenuItems.Add(this.miSave); + this.mainMenu1.MenuItems.Add(this.miBack); + this.mainMenu1.MenuItems.Add(this.menuItem1); + // + // miEditDone + // + this.miEditDone.Text = "Edit"; + this.miEditDone.Click += new System.EventHandler(this.miEditDone_Click); + // + // miSave + // + this.miSave.Enabled = false; + this.miSave.Text = "Save"; + this.miSave.Click += new System.EventHandler(this.miSave_Click); + // + // miBack + // + this.miBack.Text = "Back"; + this.miBack.Click += new System.EventHandler(this.miBack_Click); + // + // menuItem1 + // + this.menuItem1.Text = "Exit"; + this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click); + // + // WorkOrderView + // + this.ClientSize = new System.Drawing.Size(240, 294); + this.ControlBox = false; + this.Controls.Add(this.panel1); + this.Controls.Add(this.vScrollBar1); + this.Controls.Add(this.pnlMain); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Location = new System.Drawing.Point(0, 0); + this.Menu = this.mainMenu1; + this.WindowState = System.Windows.Forms.FormWindowState.Maximized; + this.Load += new System.EventHandler(this.WorkOrderView_Load); + this.Resize += new System.EventHandler(this.WorkOrderView_Resize); + this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.WorkOrderView_KeyDown); + + } + #endregion + + private void WorkOrderView_Load(object sender, EventArgs e) + { + // Non-editable fields + doNotEdit = new ArrayList(); + doNotEdit.Add(this.txtLocID); + doNotEdit.Add(this.txtSubstation); + doNotEdit.Add(this.txtTransformer); + doNotEdit.Add(this.txtMeterSN); + doNotEdit.Add(this.txtCreated); + doNotEdit.Add(this.txtAverageReading); + doNotEdit.Add(this.txtAccNum); + doNotEdit.Add(this.txtModule); + doNotEdit.Add(this.txtRoute); + + // Initialize changes to dataChanged event handler + foreach (Control c in this.pnlMain.Controls) + if (c is TextBox) + ((TextBox)c).TextChanged += new EventHandler(dataChanged); + else if (c is ComboBox) + ((ComboBox)c).SelectedIndexChanged += new EventHandler(dataChanged); + + if (newMeter) + MessageBox.Show("Warning! Meter not found in database! Enter data and click save to add.", "Meter Not Found", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); + } + + private void dataChanged(Object sender, EventArgs e) + { + if (editing) + { + changed = true; + miSave.Enabled = true; + } + } + + private void vScrollBar1_ValueChanged(object sender, EventArgs e) + { + this.pnlMain.Top = -this.vScrollBar1.Value + 30; + } + + public void initData(int index) + { + if (Helper.FileExists()) + { + WorkOrder w = Helper.WorkOrders[index]; + + this.Text = w.Portal; + txtAccNum.Text = w.AccountNum.ToString(); + lblWON.Text = w.WONum.ToString(); + txtAmount.Text = w.Amount.ToString(); + txtMaterials.Text = w.MatUsed; + txtComments.Text = w.Comments; + txtTimeSpent.Text = w.TimeSpent.ToString(); + cbSubstatus.SelectedItem = w.Substatus; + switch (w.Substatus.ToLower()) + { + case "failed": + cbSubstatus.SelectedIndex = 0; + break; + case "extended": + cbSubstatus.SelectedIndex = 1; + break; + case "invalid": + cbSubstatus.SelectedIndex = 2; + break; + case "effective": + cbSubstatus.SelectedIndex = 3; + break; + default: + cbSubstatus.SelectedIndex = -1; + break; + } + switch (w.Status.ToLower()) + { + case "open": + cbStatus.SelectedIndex = 0; + break; + case "in progress": + cbStatus.SelectedIndex = 1; + break; + case "failed": + cbStatus.SelectedIndex = 2; + break; + case "closed": + cbStatus.SelectedIndex = 3; + break; + default: + cbStatus.SelectedIndex = -1; + break; + } + txtCreated.Text = w.Created.ToString(); + txtAssignedTo.Text = w.AssignedTo; + txtWOType.Text = w.WOType; + txtMeterSN.Text = w.MeterSN.ToString(); + txtTransformer.Text = w.Transformer.ToString(); + txtSubstation.Text = w.Substation; + txtLocID.Text = w.LocID.ToString(); + txtName.Text = w.Name; + txtAverageReading.Text = w.AverageReading.ToString(); + txtkWh.Text = w.kWh.ToString(); + txtkVA.Text = w.kVA.ToString(); + txtPeak.Text = w.Peak.ToString(); + txtAddress.Text = (w.Address1 != String.Empty) ? String.Format("{0} {1}\r\n{2}, {3} {4}", w.Address1, w.Address2, w.City, w.State, w.Zip) : ""; + txtModule.Text = w.Module; + txtRoute.Text = w.Route; + } + else + MessageBox.Show("File not found!"); + } + + private void btnLeft_Click(object sender, EventArgs e) + { + if (!editing) + if (currentWorkOrder > 0) + { + initData(--currentWorkOrder); + btnRight.Enabled = true; + + if ((currentWorkOrder - 1) < 0) + btnLeft.Enabled = false; + + lblWOCount.Text = String.Format("{0}/{1}", (currentWorkOrder + 1), Helper.WorkOrders.Count()); + } + + this.Focus(); + } + + private void btnRight_Click(object sender, EventArgs e) + { + if (!editing) + if ((currentWorkOrder + 1) < Helper.WorkOrders.Count()) + { + initData(++currentWorkOrder); + btnLeft.Enabled = true; + + if ((currentWorkOrder + 1) == Helper.WorkOrders.Count()) + btnRight.Enabled = false; + + lblWOCount.Text = String.Format("{0}/{1}", (currentWorkOrder + 1), Helper.WorkOrders.Count()); + } + + this.Focus(); + } + + private void WorkOrderView_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == System.Windows.Forms.Keys.Up) + { + if ((this.vScrollBar1.Value - this.vScrollBar1.SmallChange) <= this.vScrollBar1.Minimum) + this.vScrollBar1.Value = this.vScrollBar1.Minimum; + else + this.vScrollBar1.Value -= this.vScrollBar1.SmallChange; + //this.vScrollBar1_ValueChanged(sender, e); + } + else if (e.KeyCode == System.Windows.Forms.Keys.Down) + { + if ((this.vScrollBar1.Value + this.vScrollBar1.SmallChange) >= this.vScrollBar1.Maximum) + this.vScrollBar1.Value = this.vScrollBar1.Maximum; + else + this.vScrollBar1.Value += this.vScrollBar1.SmallChange; + } + else if (e.KeyCode == System.Windows.Forms.Keys.Left) + { + this.btnLeft_Click(sender, e); + } + else if (e.KeyCode == System.Windows.Forms.Keys.Right) + { + this.btnRight_Click(sender, e); + } + else if (e.KeyCode == (Keys.RButton | Keys.Space)) // Page up button + { + int factor = (Helper.WorkOrders.Count() / 10); + if (factor > 1) + { + if ((currentWorkOrder + factor) < Helper.WorkOrders.Count()) + { + currentWorkOrder += factor; + initData(currentWorkOrder); + } + else + { + currentWorkOrder = Helper.WorkOrders.Count() - 1; + initData(currentWorkOrder); + btnLeft.Enabled = true; + btnRight.Enabled = false; + } + + lblWOCount.Text = String.Format("{0}/{1}", (currentWorkOrder + 1), Helper.WorkOrders.Count()); + } + } + else if (e.KeyCode == (Keys.LButton | Keys.Space)) // Page down button + { + int factor = (Helper.WorkOrders.Count() / 10); + if (factor > 1) + { + if ((currentWorkOrder - factor) > 0) + { + currentWorkOrder -= factor; + initData(currentWorkOrder); + } + else + { + currentWorkOrder = 0; + initData(currentWorkOrder); + btnRight.Enabled = true; + btnLeft.Enabled = false; + } + + lblWOCount.Text = String.Format("{0}/{1}", (currentWorkOrder + 1), Helper.WorkOrders.Count()); + } + } + } + + /// + /// Edit menu button clicked + /// + private void miEditDone_Click(object sender, EventArgs e) + { + MenuItem button = (MenuItem)sender; + if (button.Text == "Edit") + { + editing = true; + if (newMeter) + enableAllControls(); + else + enableRelevantControls(); + button.Text = "Done"; + } + else if (button.Text == "Done") + { + if (changed) + { + DialogResult result = MessageBox.Show("You have unsaved changes. Save them now?", "Unsaved Changes!", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2); + if (result == DialogResult.Yes) + save(); + else if (result == DialogResult.No) + { + initData(currentWorkOrder); + changed = false; + miSave.Enabled = false; + } + } + editing = false; + disableRelevantControls(); + button.Text = "Edit"; + this.Focus(); + } + } + + /// + /// Save menu item click + /// + private void miSave_Click(object sender, EventArgs e) + { + DialogResult result = MessageBox.Show("Really save changes?", "Save?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2); + if (result == DialogResult.Yes) + save(); + } + + /// + /// Back menu item click + /// + private void miBack_Click(object sender, EventArgs e) + { + this.Dispose(); + this.Close(); + } + + /// + /// Enables editable* controls. + /// *Controls not in doNotEdit. + /// + private void enableRelevantControls() + { + bool editable = true; + foreach (Control c in this.pnlMain.Controls) + { + if (c is TextBox) + if (((TextBox)c).Equals(this.txtName)) + Console.Write("here"); + for (int i = 0; i < doNotEdit.Count; i++) + if (c.Equals(doNotEdit[i])) + editable = false; + + if (editable) + c.Enabled = true; + + editable = true; + } + } + + private void enableAllControls() + { + foreach (Control c in this.pnlMain.Controls) + if ((c is TextBox) || (c is ComboBox)) + c.Enabled = true; + } + + private void disableRelevantControls() + { + foreach (Control c in this.pnlMain.Controls) + if ((c is TextBox) || (c is ComboBox)) + c.Enabled = false; + } + + private void save() + { + if (newMeter) + { + WorkOrder wo = new WorkOrder(); + wo.WONum = Helper.WorkOrders.Count(); + wo.Portal = String.Empty; + wo.AccountNum = txtAccNum.Text; + wo.Name = txtName.Text; + wo.LocID = txtLocID.Text; + wo.Substation = txtSubstation.Text; + wo.Transformer = txtTransformer.Text; + + // ========== Begin address parsing + string[] addr = txtAddress.Text.Split("\r\n".ToCharArray()); + string[] addr0_1 = addr[0].Split(' '); + string[] addr2_3_4 = addr[1].Split(' '); + wo.Address1 = addr0_1[0]; + wo.Address2 = addr0_1[1]; + wo.City = addr2_3_4[0]; + wo.State = addr2_3_4[1]; + wo.Zip = int.Parse(addr2_3_4[2]); + // ========== End address parsing + + wo.Module = txtModule.Text; + wo.Route = txtRoute.Text; + wo.MeterSN = txtMeterSN.Text; + wo.WOType = txtWOType.Text; + wo.AssignedTo = txtAssignedTo.Text; + wo.AverageReading = 0.0; + wo.Created = (txtCreated.Text != String.Empty) ? new DateTime(int.Parse(txtCreated.Text.Substring(0, 4)), + int.Parse(txtCreated.Text.Substring(5, 2)), + int.Parse(txtCreated.Text.Substring(8, 2))) : new DateTime(); + Helper.WorkOrders.Insert(Helper.WorkOrders.Count(), wo); + } + + int c = Helper.WorkOrders.Count() - 1; + Helper.WorkOrders[c].Amount = double.Parse(txtAmount.Text); + Helper.WorkOrders[c].MatUsed = txtMaterials.Text; + Helper.WorkOrders[c].Comments = txtComments.Text; + Helper.WorkOrders[c].TimeSpent = double.Parse(txtTimeSpent.Text); + Helper.WorkOrders[c].Substatus = cbSubstatus.SelectedValue.ToString(); + Helper.WorkOrders[c].Status = cbStatus.SelectedIndex.ToString(); + Helper.WorkOrders[c].Name = txtName.Text; + Helper.WorkOrders[c].kWh = (txtkWh.Text != String.Empty) ? int.Parse(txtkWh.Text) : 0; + Helper.WorkOrders[c].kVA = (txtkVA.Text != String.Empty) ? int.Parse(txtkVA.Text) : 0; + Helper.WorkOrders[c].Peak = (txtPeak.Text != String.Empty) ? int.Parse(txtPeak.Text) : 0; + + changed = false; + miSave.Enabled = false; + } + + private void menuItem1_Click(object sender, EventArgs e) + { + this.Dispose(); + this.Close(); + Program.Exit(); + } + + private void WorkOrderView_Resize(object sender, EventArgs e) + { + FormWindowState m = this.WindowState; + } + } +}