public void ParseUj(DateTime date) { Auto tmpCar; WorkData tmpData; List <WorkData> tmpFordulo = new List <WorkData>(); string tmpRsz; int tmpTav; try { tempDoc.Load(string.Format("{0}\\{1}.tmx", pathRoot, date.ToString("yyyy_MM_dd"))); foreach (XmlNode carNode in tempDoc.DocumentElement.FirstChild.ChildNodes) { tmpRsz = carNode.Attributes[0].Value; tmpCar = new Auto(tmpRsz); autok.Add(tmpRsz, tmpCar); foreach (XmlNode fordNode in carNode.ChildNodes) { tmpTav = int.Parse(fordNode.Attributes[0].Value); tmpFordulo.Clear(); foreach (XmlNode cimNode in fordNode.ChildNodes) { tmpData = new WorkData(); tmpData.Lat = double.Parse(cimNode.Attributes[0].Value); tmpData.Lng = double.Parse(cimNode.Attributes[1].Value); tmpData.WorkCapacity = int.Parse(cimNode.Attributes[2].Value); tmpData.TenylegesKobmeter = int.Parse(cimNode.Attributes[3].Value); tmpData.Napszak = int.Parse(cimNode.Attributes[4].Value); tmpData.Utca = cimNode.Attributes[6].Value; tmpData.HazSzam = cimNode.Attributes[7].Value; tmpData.IranyitoSzam = int.Parse(cimNode.Attributes[8].Value); tmpData.CsoHossz = int.Parse(cimNode.Attributes[9].Value); tmpData.WorksheetNumber = long.Parse(cimNode.Attributes[10].Value); osszesito.UpdateWith(tmpData); tmpFordulo.Add(tmpData); workList.Add(tmpData); } tmpCar.AddFuvar(tmpFordulo, tmpTav); } } } catch (Exception e) { } }
private void fixateBtn_Click(object sender, EventArgs e) { if (statview.Tag != null) { Auto activeVehicle = (Auto)statview.Tag; if (actualWorkSet.Count > 0) { if (remaining < actualWorkSet.Count) { MessageBox.Show("Az aktív járműnek nincs elég szabad címe a napszakban.\nAz összeszívás nem lehetséges.", "Nincs szabad cím", MessageBoxButtons.OK, MessageBoxIcon.Error); fuvarTörléseToolStripMenuItem_Click(null, null); return; } if (groupCapacity > 0) { if (MessageBox.Show("A jármű tartályában " + groupCapacity + " m3-nyi hely maradt.\n Mégis lezárjam a fordulót?", "Szabad kapacitás maradt", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { fuvarTörléseToolStripMenuItem_Click(null, null); return; } } if (groupCapacity < 0) { if (MessageBox.Show("A jármű kapacitása " + (-groupCapacity) + " m3-rel túl van terhelve.\n Mégis lezárjam a fordulót?", "Túlterhelés", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { fuvarTörléseToolStripMenuItem_Click(null, null); return; } } int dist = Uthossz(actualWorkSet.ToArray()); double limit = activeVehicle.Kapacitas <= WorkData.HatarKapacitas ? Properties.Settings.Default.otkm : Properties.Settings.Default.tizkm; if (limit > 0 && dist + activeVehicle.OsszTavolsag > limit) { if (MessageBox.Show("A jármű összes km értéke meghaladja a beállított limitet.\nFolytatja?", "Távolságlimit túllépés", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.No) { fuvarTörléseToolStripMenuItem_Click(null, null); return; } } WorkData wd; List <WorkData> workGroup = new List <WorkData>(); foreach (int tid in actualWorkSet) { wd = partialRepo[tid]; if (wd.Kobmeter != WorkData.HatarKapacitas) { unfive[activePeriod]--; smallM3 -= wd.Kobmeter; kism3Unmap.Text = smallM3.ToString(); } else { unbig[activePeriod]--; bigM3 -= wd.Kobmeter; nagym3Unmap.Text = bigM3.ToString(); } workGroup.Add(wd); AppLogger.WriteMapping(activeVehicle.Rendszam, wd.Cim); browser.Document.InvokeScript("hide", new object[] { tid, activeVehicle.Index, activeVehicle.NapszakForduloSzam(activePeriod) + 1 }); } if (actualWorkSet.Count > 0) { savedState++; activeVehicle.AddFuvar(workGroup, dist); remaining = activeVehicle.SzabadCimek(activePeriod); aktualisMenet.Text = remaining.ToString(); groupCapacity = activeVehicle.Kapacitas; foreach (int id in actualWorkSet) { RestoreJunction(id); } FillSingleCarData(); } unFiveLabel[activePeriod].Text = unfive[activePeriod].ToString(); unBigLabel[activePeriod].Text = unbig[activePeriod].ToString(); if (leftTab.SelectedIndex == 0) { UpdateStat(); } else { UpdateCimlista(); } } } actualWorkSet.Clear(); clickedGroup.Items.Clear(); }
private void RestoreState(string sourceFile) { Reset(); fileName = sourceFile; List <WorkData> allWork = new List <WorkData>(); Auto car; XmlDocument sourceDoc = new XmlDocument(); WorkData wd; int maxVehIndex = 0; try { FileStream fs = new FileStream(sourceFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); sourceDoc.Load(fs); DateTime sourceDate = DateTime.Parse(sourceDoc.DocumentElement.Attributes["date"].Value); dateChooser.Value = sourceDate; //Autók XmlNode xmlNode = sourceDoc.DocumentElement.ChildNodes[0]; List <WorkData> workList = new List <WorkData>(); int dest; foreach (XmlNode node in xmlNode.ChildNodes) { car = new Auto(node.Attributes[0].Value); car.Kapacitas = int.Parse(node.Attributes[1].Value); car.Lizingdij = float.Parse(node.Attributes[8].Value); car.Fogyasztas = float.Parse(node.Attributes[9].Value); car.SetNapszakFordulok(0, int.Parse(node.Attributes[2].Value)); car.SetNapszakFordulok(1, int.Parse(node.Attributes[3].Value)); car.SetNapszakFordulok(2, int.Parse(node.Attributes[4].Value)); car.Index = int.Parse(node.Attributes[5].Value); if (car.Index > maxVehIndex) { maxVehIndex = car.Index; } car.Sofor = node.Attributes[6].Value; car.Seged = node.Attributes[7].Value; //Fordulók foreach (XmlNode groupNode in node.ChildNodes) { workList.Clear(); dest = int.Parse(groupNode.Attributes[0].Value); foreach (XmlNode workNode in groupNode.ChildNodes) { wd = new WorkData(); wd.ParseFromXml(workNode); wd.ParseFold(workNode); wd.ParseKoord(workNode); summary.UpdateWith(wd); workList.Add(wd); allWork.Add(wd); } car.AddFuvar(workList, dest); } vehicles.Add(car); } if (!Properties.Settings.Default.mentettAuto) { dao.GetAutoAdat(vehicles); } Auto.AutoIndex = maxVehIndex + 1; //Csórikák xmlNode = sourceDoc.DocumentElement.ChildNodes[1]; foreach (XmlNode cimNode in xmlNode.ChildNodes) { wd = new WorkData(); wd.ParseFromXml(cimNode); wd.ParseFold(cimNode); wd.ParseKoord(cimNode); summary.UpdateWith(wd); allWork.Add(wd); if (wd.WorkCapacity <= WorkData.BigCapacityLimit) { if (!wd.Jozsai) { unfive[wd.Napszak - 1]++; m3small[0] += wd.WorkCapacity; } else { unfive[wd.Napszak + 2]++; m3small[1] += wd.WorkCapacity; } } else { if (!wd.Jozsai) { unbig[wd.Napszak - 1]++; m3big[0] += wd.WorkCapacity; } else { unbig[wd.Napszak + 2]++; m3big[1] += wd.WorkCapacity; } } } if (!Properties.Settings.Default.mentettFold) { dao.GetFoldLatLng(allWork); } if (!Properties.Settings.Default.mentettKoord) { dao.GetLatLng(allWork); } Properties.Settings.Default.lastDir = sourceFile.Substring(0, sourceFile.LastIndexOf('\\')); LoadMarkersFromData(allWork); } catch (Exception ex) { MessageBox.Show("Állomány megnyitása sikertelen.\nEz a verzió valószínűleg nem kompatibilis a régebbi mentésekkel.", "Megnyitás sikertelen", MessageBoxButtons.OK, MessageBoxIcon.Error); AppLogger.WriteException(ex); AppLogger.WriteEvent("A kivétel elkapva."); Reset(); } AppLogger.WriteOpen(fileName); }