Ejemplo n.º 1
0
        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)
            {
            }
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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);
        }