Exemplo n.º 1
0
        public BPKaufteil(int id, String bezeichnung, Double diskontmenge, Double lieferzeit, Double lieferzeitAbweichung, Double bestellkostenNormal)
        {
            this.id                   = id;
            this.bezeichnung          = bezeichnung;
            this.diskontmenge         = diskontmenge;
            this.lieferzeit           = lieferzeit;
            this.lieferzeitAbweichung = lieferzeitAbweichung;
            this.bestellkostenNormal  = bestellkostenNormal;

            Warehousestock w = Warehousestock.Class;

            this.teileWert         = w.GetArticleByID(id).Price;
            this.verbrauchPeriode0 = Produktionsplanung.getBedarfByID(id);
            this.verbrauchPeriode1 = ProduktionsplanungPeriode1.getBedarfByID(id);
            this.verbrauchPeriode2 = ProduktionsplanungPeriode2.getBedarfByID(id);
            this.verbrauchPeriode3 = ProduktionsplanungPeriode3.getBedarfByID(id);

            int aktuellePeriode = Static.Static.lastperiod + 1;

            /*Waitingliststock wls = Waitingliststock.Class;
             * var founditem = wls.GetMissingpartByID(id);*/

            Futureinwardstockmovement fism = Futureinwardstockmovement.Class;
            var founditem = fism.GetOrdersByArticle(id);

            if (founditem != null)
            {
                foreach (var wli in founditem)
                {
                    int lieferperiode = (int)Math.Floor(wli.Orderperiod + (this.lieferzeitGesamt / 5));
                    if (lieferperiode == aktuellePeriode)
                    {
                        this.geplanteBestellzugaengePeriode0 += wli.Amount;
                    }
                    else if (lieferperiode == aktuellePeriode + 1)
                    {
                        this.geplanteBestellzugaengePeriode1 += wli.Amount;
                    }
                    else if (lieferperiode == aktuellePeriode + 2)
                    {
                        this.geplanteBestellzugaengePeriode2 += wli.Amount;
                    }
                    else if (lieferperiode == aktuellePeriode + 3)
                    {
                        this.geplanteBestellzugaengePeriode3 += wli.Amount;
                    }
                    //if (wli.Orderperiod == aktuellePeriode) this.geplanteBestellzugaengePeriode0 += wli.Amount;
                    //else if (wli.Orderperiod == aktuellePeriode + 1) this.geplanteBestellzugaengePeriode1 += wli.Amount;
                    //else if (wli.Orderperiod == aktuellePeriode + 2) this.geplanteBestellzugaengePeriode2 += wli.Amount;
                    //else if (wli.Orderperiod == aktuellePeriode + 3) this.geplanteBestellzugaengePeriode3 += wli.Amount;
                }
            }

            this.sicherheitsBestand = (int)(((lieferzeitAbweichung * ValueStore.Instance.sicherheitsFaktor) * durchSchnittsverbrauchProTag));
            //this.sicherheitsBestand = ((int)(this.sicherheitsBestand / 10)) * 10;
            this.sicherheitsBestand = this.sicherheitsBestand + ((10 - (this.sicherheitsBestand % 10)) % 10);
            this.meldeBestand       = ((int)((lieferzeit * durchSchnittsverbrauchProTag) + sicherheitsBestand));
            this.meldeBestand       = this.meldeBestand + ((10 - (this.meldeBestand % 10)) % 10);
        }
Exemplo n.º 2
0
        public bool ParseXML(string XMLinput)
        {
            try {
                if (String.IsNullOrEmpty(XMLinput))
                {
                    throw new ArgumentNullException();
                }

                XmlDocument doc = new XmlDocument();
                doc.LoadXml(XMLinput);

                Static.Static.ClearInputClasses();

                Static.Static.game       = Convert.ToInt32(doc.DocumentElement.Attributes["game"].InnerText);
                Static.Static.group      = Convert.ToInt32(doc.DocumentElement.Attributes["group"].InnerText);
                Static.Static.lastperiod = Convert.ToInt32(doc.DocumentElement.Attributes["period"].InnerText);

                foreach (XmlNode Results in doc.DocumentElement.ChildNodes)
                {
                    foreach (XmlNode node in Results)
                    {
                        if (Results.Name == "warehousestock")
                        {
                            Warehousestock w = Warehousestock.Class;
                            if (node.Name == "article")
                            {
                                w.AddArticle(new Warehousestock.Article(Convert.ToInt32(node.Attributes["id"].InnerText), Convert.ToInt32(node.Attributes["amount"].InnerText), Convert.ToInt32(node.Attributes["startamount"].InnerText), Convert.ToDouble(node.Attributes["pct"].InnerText), Convert.ToDouble(node.Attributes["price"].InnerText), Convert.ToDouble(node.Attributes["stockvalue"].InnerText)));
                            }
                        }
                        else if (Results.Name == "inwardstockmovement")
                        {
                            Inwardstockmovement iwsm = Inwardstockmovement.Class;
                            iwsm.AddOrder(new Inwardstockmovement.Order(Convert.ToInt32(node.Attributes["orderperiod"].InnerText), Convert.ToInt32(node.Attributes["id"].InnerText), Convert.ToInt32(node.Attributes["mode"].InnerText), Convert.ToInt32(node.Attributes["article"].InnerText), Convert.ToInt32(node.Attributes["amount"].InnerText), Convert.ToInt32(node.Attributes["time"].InnerText), Convert.ToDouble(node.Attributes["materialcosts"].InnerText), Convert.ToDouble(node.Attributes["ordercosts"].InnerText), Convert.ToDouble(node.Attributes["entirecosts"].InnerText), Convert.ToDouble(node.Attributes["piececosts"].InnerText)));
                        }
                        else if (Results.Name == "futureinwardstockmovement")
                        {
                            Futureinwardstockmovement fiwsm = Futureinwardstockmovement.Class;
                            fiwsm.AddOrder(new Futureinwardstockmovement.Order(Convert.ToInt32(node.Attributes["orderperiod"].InnerText), Convert.ToInt32(node.Attributes["id"].InnerText), Convert.ToInt32(node.Attributes["mode"].InnerText), Convert.ToInt32(node.Attributes["article"].InnerText), Convert.ToInt32(node.Attributes["amount"].InnerText)));
                        }
                        else if (Results.Name == "idletimecosts")
                        {
                            Idletimecosts itc = Idletimecosts.Class;
                            if (node.Name == "workplace")
                            {
                                itc.AddWorkplace(new Idletimecosts.Workplace(Convert.ToInt32(node.Attributes["id"].InnerText), Convert.ToInt32(node.Attributes["setupevents"].InnerText), Convert.ToInt32(node.Attributes["idletime"].InnerText), Convert.ToDouble(node.Attributes["wageidletimecosts"].InnerText), Convert.ToDouble(node.Attributes["wagecosts"].InnerText), Convert.ToDouble(node.Attributes["machineidletimecosts"].InnerText)));
                            }
                        }
                        else if (Results.Name == "waitinglistworkstations")
                        {
                            Waitinglistworkstations           wlws = Waitinglistworkstations.Class;
                            Waitinglistworkstations.Workplace wp   = new Waitinglistworkstations.Workplace(Convert.ToInt32(node.Attributes["id"].InnerText));
                            foreach (XmlNode waitinglist in node)
                            {
                                wp.Add(new Waitinglistworkstations.Workplace.Waitinglist(Convert.ToInt32(waitinglist.Attributes["period"].InnerText), Convert.ToInt32(waitinglist.Attributes["order"].InnerText), Convert.ToInt32(waitinglist.Attributes["firstbatch"].InnerText), Convert.ToInt32(waitinglist.Attributes["lastbatch"].InnerText), Convert.ToInt32(waitinglist.Attributes["item"].InnerText), Convert.ToInt32(waitinglist.Attributes["amount"].InnerText), Convert.ToInt32(waitinglist.Attributes["timeneed"].InnerText)));
                            }
                            wlws.Add(wp);
                        }
                        else if (Results.Name == "waitingliststock")
                        {
                            Waitingliststock             wls = Waitingliststock.Class;
                            Waitingliststock.Missingpart mp  = new Waitingliststock.Missingpart(Convert.ToInt32(node.Attributes["id"].InnerText));
                            foreach (XmlNode waitinglist in node)
                            {
                                mp.Add(new Waitingliststock.Missingpart.Waitinglist(Convert.ToInt32(waitinglist.Attributes["period"].InnerText), Convert.ToInt32(waitinglist.Attributes["order"].InnerText), Convert.ToInt32(waitinglist.Attributes["firstbatch"].InnerText), Convert.ToInt32(waitinglist.Attributes["lastbatch"].InnerText), Convert.ToInt32(waitinglist.Attributes["item"].InnerText), Convert.ToInt32(waitinglist.Attributes["amount"].InnerText)));
                            }
                            wls.Add(mp);
                        }
                        else if (Results.Name == "ordersinwork")
                        {
                            Ordersinwork oiw = Ordersinwork.Class;
                            oiw.Add(new Ordersinwork.Workplace(Convert.ToInt32(node.Attributes["id"].InnerText), Convert.ToInt32(node.Attributes["period"].InnerText), Convert.ToInt32(node.Attributes["order"].InnerText), Convert.ToInt32(node.Attributes["batch"].InnerText), Convert.ToInt32(node.Attributes["item"].InnerText), Convert.ToInt32(node.Attributes["amount"].InnerText), Convert.ToInt32(node.Attributes["timeneed"].InnerText)));
                        }
                        else if (Results.Name == "completedorders")
                        {
                            Completedorders       co = Completedorders.Class;
                            Completedorders.Order o  = new Completedorders.Order(Convert.ToInt32(node.Attributes["period"].InnerText), Convert.ToInt32(node.Attributes["id"].InnerText), Convert.ToInt32(node.Attributes["item"].InnerText));
                            foreach (XmlNode batch in node)
                            {
                                o.AddBatch(new Completedorders.Order.Batch(Convert.ToInt32(batch.Attributes["id"].InnerText), Convert.ToInt32(batch.Attributes["amount"].InnerText), Convert.ToInt32(batch.Attributes["cycletime"].InnerText), Convert.ToDouble(batch.Attributes["cost"].InnerText)));
                            }
                            co.AddOrder(o);
                        }
                        else if (Results.Name == "cycletimes")
                        {
                            Cycletimes ct = Cycletimes.Class;
                            if (Cycletimes.Class == null)
                            {
                                ct = new Cycletimes(Convert.ToInt32(Results.Attributes["startedorders"].InnerText), Convert.ToInt32(Results.Attributes["waitingorders"].InnerText));
                            }
                            ct.AddOrder(new Cycletimes.Order(Convert.ToInt32(node.Attributes["id"].InnerText), Convert.ToInt32(node.Attributes["period"].InnerText), node.Attributes["starttime"].InnerText, node.Attributes["finishtime"].InnerText, Convert.ToInt32(node.Attributes["cycletimemin"].InnerText), Convert.ToDouble(node.Attributes["cycletimefactor"].InnerText)));
                        }
                        else if (Results.Name == "result")
                        {
                            foreach (XmlNode inner in node)
                            {
                                if (node.Name == "general")
                                {
                                    if (inner.Name == "capacity")
                                    {
                                        Result.General.Capacity = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "possiblecapacity")
                                    {
                                        Result.General.Possiblecapacity = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "relpossiblenormalcapacity")
                                    {
                                        Result.General.Relpossiblenormalcapacity = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "productivetime")
                                    {
                                        Result.General.Productivetime = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "effiency")
                                    {
                                        Result.General.Effiency = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "sellwish")
                                    {
                                        Result.General.Sellwish = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "salesquantity")
                                    {
                                        Result.General.Salesquantity = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "deliveryreliability")
                                    {
                                        Result.General.Deliveryreliability = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "idletime")
                                    {
                                        Result.General.Idletime = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "idletimecosts")
                                    {
                                        Result.General.Idletimecosts = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "storevalue")
                                    {
                                        Result.General.Storevalue = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "storagecosts")
                                    {
                                        Result.General.Storagecosts = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                }
                                else if (node.Name == "defectivegoods")
                                {
                                    if (inner.Name == "quantity")
                                    {
                                        Result.Defectivegoods.Quantity = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "costs")
                                    {
                                        Result.Defectivegoods.Costs = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                }
                                else if (node.Name == "normalsale")
                                {
                                    if (inner.Name == "salesprice")
                                    {
                                        Result.Normalsale.Salesprice = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "profit")
                                    {
                                        Result.Normalsale.Profit = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "profitperunit")
                                    {
                                        Result.Normalsale.Profitperunit = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                }
                                else if (node.Name == "directsale")
                                {
                                    if (inner.Name == "profit")
                                    {
                                        Result.Directsale.Profit = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                    else if (inner.Name == "contractpenalty")
                                    {
                                        Result.Directsale.Contractpenalty = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                }
                                else if (node.Name == "marketplacesale")
                                {
                                    if (inner.Name == "profit")
                                    {
                                        Result.Marketplacesale.Profit = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                }
                                else if (node.Name == "summary")
                                {
                                    if (inner.Name == "profit")
                                    {
                                        Result.Summary.Profit = new Result.ResultTyp(inner.Attributes["current"].InnerText, inner.Attributes["average"].InnerText, inner.Attributes["all"].InnerText);
                                    }
                                }
                            }
                        }
                    }
                }
            } catch {
                return(false);
            }
            return(true);
        }