/// <summary>
        /// Get Aid from Garp and build Aid definition with all parts
        /// </summary>
        /// <param name="ordernr">order number</param>
        /// <returns>Array of New Aid Definitions</returns>
        private Aid[] getAids(string ordernr, string aidid)
        {
            HelpClasses.Table oProdStat = new HelpClasses.Table("1R");
            Aid[] aup = new Aid[1];
            ArrayList sAidList = new ArrayList();
            ArrayList parts = new ArrayList();
            Ortoped.GarpFunctions.OrderRowFunc orf = new Ortoped.GarpFunctions.OrderRowFunc();
            OrderRowDefinitions.OrderRow[] or;

            or = orf.getAid(ordernr, aidid, false).OrderRows.ToArray();

            if (or.Length > 0)
            {
                //första orderrad till sista orderrad
                foreach (OrderRowDefinitions.OrderRow mor in or)
                {
                    if (mor.ViewInList) // AID
                    {
                        // aup.externalaidid = mOGR.Fields.Item("ANR").Value;
                        string externalaidid = mor.AidDate + mor.OrderNo.PadRight(6) + mor.AidNr + mor.Rad.PadLeft(3);
                        aup[0].name = mor.ProductName;

                        //garpaidid bör inte ligga i description, var skall det ligga?
                        aup[0].description = externalaidid;

                        if (mAGA.Find(mor.Artikel))
                        {
                            //hämta aidtypeoid!
                            aup[0].aidtypeoidSpecified = true;
                            aup[0].aidtypeoid = mAGA_SES.Value == null ? 0 : Int32.Parse(mAGA_SES.Value);
                            aup[0].aidoid = mor.AidOid;
                            aup[0].CreatedInThord = mor.CreatedInThord;
                            aup[0].orderno = mor.OrderNo;
                            aup[0].row = mor.Rad;
                            aup[0].isonumber = mAGA_STA.Value == null ? "" : mAGA_STA.Value;
                            aup[0].externalaidid = externalaidid;
                            aup[0].ProdStat = oProdStat.getIdByTX1(mor.Prodstatus);
                            aup[0].needstepSpecified = true;
                            aup[0].FirstTimePatient = mor.FirstTimePatient;
                            if (!mor.Thord_NeedStep.Equals(""))
                                aup[0].needstep = int.Parse(mor.Thord_NeedStep);
                            else
                                MessageBox.Show("Behovstrappa är inte angiven på detta hjälpmedel", "Behovstrappa");
                        }
                    }

                    Part p = new Part();

                    p.CreatedInThord = mor.CreatedInThord;
                    p.orderno = mor.OrderNo;
                    p.row = mor.Rad;
                    p.partoid = mor.PartOid;
                    p.countSpecified = true;
                    p.count = Convert.ToDecimal(mor.Antal.Replace(".", ","));

                    if (mAGT.Find(mor.Artikel))
                    {
                        p.positionid = mor.Artikel; //mAGT_TX15.Value == null ? "" : mAGT_TX15.Value;
                        if (mAGA.Find(mor.Artikel))
                        {
                            if (ECS.noNULL(mAGA_KD6.Value).Equals("N")) // If KD6 = "N" then the part have no price in Garp
                            {
                                p.priceSpecified = true;
                                p.price = Convert.ToDecimal(mor.APris.Replace(".", ","));
                            }
                            else
                            {
                                p.priceSpecified = false;
                                p.price = 0;
                            }
                        }
                        parts.Add(p);
                    }
                }
            }
            else
            {
                MessageBox.Show(null, "Order: " + ordernr + " saknas", "Finns ej", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            aup[0].parts = (Part[])parts.ToArray(typeof(Part));

            return aup;
        }
        private RemovePartDefinition[] createPartRemoveDefinition(Part[] parts)
        {
            ArrayList al = new ArrayList();
            RemovePartDefinition pr;

            foreach (Part p in parts)
            {
                if (p.CreatedInThord && p.RemoveMe)
                {
                    if (p.partoid != 0)
                    {
                        pr = new RemovePartDefinition();
                        pr.partoid = p.partoid;
                        pr.partoidSpecified = true;
                        al.Add(pr);
                    }
                    else
                        MessageBox.Show("Artikeln (" + p.positionid + ") saknar identitet i Thord (PartOid). Denna artikel kan inte\nuppdateras till Thord utan måste hanteras manuellt", "Kan inte posta till Thord");
                }
            }

            return (RemovePartDefinition[])al.ToArray(typeof(RemovePartDefinition));
        }
        private PartUpdateDefinition[] createPartUpdateDefinition(Part[] parts)
        {
            ArrayList al = new ArrayList();
            PartUpdateDefinition pu;

            foreach (Part p in parts)
            {
                if (p.CreatedInThord && !p.RemoveMe)
                {
                    if (p.partoid != 0)
                    {
                        pu = new PartUpdateDefinition();
                        pu.positionid = p.positionid;
                        pu.partoid = p.partoid;
                        pu.partoidSpecified = true;
                        pu.count = p.count;
                        pu.countSpecified = p.countSpecified;
                        pu.price = p.price;
                        pu.priceSpecified = p.priceSpecified;
                        pu.externalpartid = p.orderno.PadRight(6, '_') + p.row.Trim();
                        al.Add(pu);
                    }
                    else
                        MessageBox.Show("Artikeln (" + p.positionid + ") saknar identitet i Thord (PartOid). Denna artikel kan inte\nuppdateras till Thord utan måste hanteras manuellt", "Kan inte posta till Thord");

                }
            }

            return (PartUpdateDefinition[])al.ToArray(typeof(PartUpdateDefinition));
        }
        private NewPartDefinition[] createPartNewDefinition(Part[] parts)
        {
            ArrayList al = new ArrayList();
            NewPartDefinition np;

            if (parts == null)
                return null;

            foreach (Part p in parts)
            {
                if (!p.CreatedInThord && !p.RemoveMe)
                {
                    np = new NewPartDefinition();
                    np.positionid = p.positionid;
                    np.count = p.count;
                    np.countSpecified = p.countSpecified;
                    np.price = p.price;
                    np.priceSpecified = p.priceSpecified;
                    np.externalpartid = p.orderno.PadRight(6, '_') + p.row.Trim();
                    al.Add(np);
                }
            }

            return (NewPartDefinition[])al.ToArray(typeof(NewPartDefinition));
        }