Пример #1
0
        public Wertpapier HoleVortagesDatenALT()
        {
            // Suchen bis Datum kleiner ist als Heute.
            Wertpapier wpVorher = null;
            string s            = "";
            string pfad         = "";
            DateTime dt         = DateTime.Now;

            for (int i = 1; i < 50; i++)
            {
                s    = (dt - new TimeSpan(i, 0, 0, 0, 0)).ToString();
                pfad = Helpers.GlobalRef.g_Ein.MyDataPfad + @"MyDepot\KursDaten\PortFol_" + s.Substring(6, 4) + s.Substring(3, 2) + s.Substring(0, 2) + ".xml";
                bool gef = File.Exists(pfad);
                if (gef)
                {
                    break;
                }
            }
            //while (!gefunden);       //!File.Exists(pfad));
            //XmlSerializer xs = new XmlSerializer(typeof(ObservableCollection<Wertpapier>));
            XmlSerializer ser = null;

            try {
                ser = new XmlSerializer(typeof(CollWertpapiere));
            } catch (Exception ex) {
                MessageBox.Show("holeVortagesDaten() Fehler: " + ex);
                return(wpVorher);
            }
            using (Stream rd = new FileStream(pfad, FileMode.Open)) {
                wpVorher = (Wertpapier)ser.Deserialize(rd);
            }
            //Debug.WriteLine(wpVorher[0]);
            return(wpVorher);
        }
Пример #2
0
        /* public Wertpapier hole0101Wertpapier_ALT(string isin) {
         *  XmlSerializer xmlserializer = new XmlSerializer(typeof(CollWertpapiere));
         *  CollWertpapiere wp;
         *  string pfad = Helpers.GlobalRef.g_Ein.myDataPfad + @"MyDepot\KursDaten";
         *  DirectoryInfo ParentDirectory = new DirectoryInfo(pfad);
         *  FileInfo[] fis = ParentDirectory.GetFiles();
         *  DateTime dtvj = DateTime.Now.Date.AddYears(-1);
         *  string strvor1j = "PortFol_" + dtvj.Year.ToString("0000") + dtvj.Month.ToString("00") + dtvj.Day.ToString("00") + ".xml";
         *  string strvj = "";
         *  int vgl = 0;
         *  foreach (FileInfo fi in fis) {
         *      vgl = string.Compare(strvor1j, fi.Name);
         *      if (vgl != 1) {
         *          strvj = fi.Name;
         *          break;
         *      }
         *  }
         *  using (Stream reader = new FileStream(pfad + @"\" + strvj, FileMode.Open)) {
         *      wp = (CollWertpapiere)xmlserializer.Deserialize(reader);
         *  }
         *  foreach (Wertpapier wp1 in wp)
         *      if (wp1.ISIN == isin)
         *          return wp1;
         *  return null;
         * } */
        public Wertpapier HoleVortagesDatenXX()
        {
            // C :\U sers\LuKe\Documents\MeineFinanzen\MyDepot\KursDaten\PortFol_20151019 (2015_10_21 10_17_02 UTC).xml
            Wertpapier wpVorher = null;
            //string s = "";
            string   pfad = "";
            DateTime dt   = DateTime.Now;

            string[] arrFiles;
            int      nFiles = 0;

            pfad = Helpers.GlobalRef.g_Ein.MyDataPfad + @"MyDepot\KursDaten";        //\PortFol_" + s.Substring(6, 4) + s.Substring(3, 2) + s.Substring(0, 2) + ".xml";
            foreach (string fi in Directory.GetFiles(pfad))
            {
                FileInfo fsi = new FileInfo(fi);
                if ((fsi.Attributes & FileAttributes.Directory) == 0)
                {
                    if (fsi.Name.Length >= 16)
                    {
                        if (fsi.Name.Substring(0, 8) == "PortFol_")
                        {
                            if (fsi.Name.Contains(".xml"))
                            {
                                nFiles++;                                            // nur Zählen
                            }
                        }
                    }
                }
            }
            Console.WriteLine("nFiles: {0}", nFiles);
            arrFiles = new string[nFiles];
            int nF = 0;
            foreach (string fi in Directory.GetFiles(pfad))
            {
                FileInfo fsi = new FileInfo(fi);
                if ((fsi.Attributes & FileAttributes.Directory) == 0)
                {
                    if (fsi.Name.Length >= 8)
                    {
                        if (fsi.Name.Substring(0, 8) == "PortFol_")
                        {
                            Console.WriteLine("{0} {1}", nF, fsi.Name);
                            if (fsi.Name.Contains(".xml"))
                            {
                                //PortFol_20150901
                                //if (!fsi.Name.Contains("_2015"))
                                //    continue;
                                Console.WriteLine("{0} {1}", nF, fsi.Name);
                                arrFiles[nF++] = fsi.Name.Substring(0, 16);           // füllen
                            }
                        }
                    }
                }
            }
            IComparer myComparer = new MyReverserClass();
            Array.Sort(arrFiles, myComparer);

            // NOCH  pfad setzen

            XmlSerializer ser = new XmlSerializer(typeof(CollWertpapiere));
            using (Stream rd = new FileStream(pfad, FileMode.Open)) {
                wpVorher = (Wertpapier)ser.Deserialize(rd);
            }
            //Debug.WriteLine(wpVorher[0]);
            return(wpVorher);
        }
Пример #3
0
        public void ErstelleDgBankenWertpapiere(View.HauptFenster mw)
        {
            mw.tabWertpapiere.Visibility             = Visibility.Visible;
            mw.dgWertpapiere.EnableRowVirtualization = false;
            DgBanken._wertpapiere = (CollWertpapiere)mw.Resources["wertpapiereXXX"];
            if (mw.dgWertpapiere.Items.Count > 1)
            {
                DgBanken._wertpapiere.Clear();
            }
            ICollectionView cvWertpapiere = CollectionViewSource.GetDefaultView(mw.dgWertpapiere.ItemsSource);

            if (cvWertpapiere != null)
            {
                cvWertpapiere.GroupDescriptions.Clear();
            }
            ConWrLi("---- -TW1- In TabWertpapiere");
            mw.dgWertpapiere.UpdateLayout();
            ConWrLi("---- -TW2- ");
            typeid = -1;
            FelderLöschen();
            //wpVorher = null;       // NOCH holeVortagesDaten();
            DataTable dtt2 = new DataTable();

            DataSetAdmin.dvPortFol.Sort             = "WPTypeID";
            DataSetAdmin.dtPortFol.DefaultView.Sort = "WPTypeID ASC";
            dtt2 = DataSetAdmin.dtPortFol.DefaultView.ToTable();
            DataSetAdmin.dtPortFol = dtt2;
            ConWrLi("---- -TW3- ");
            for (int ir = 0; ir < DataSetAdmin.dtPortFol.Rows.Count; ir++)
            {
                if (typeid == -1)
                {
                    typeid = (int)DataSetAdmin.dtPortFol.Rows[ir]["WPTypeID"];
                }
                ak     = DataSetAdmin.dvAnlKat.Find(typeid);
                aKKurz = Convert.ToString(DataSetAdmin.dvAnlKat[ak]["AKKurz"]);
                aKName = Convert.ToString(DataSetAdmin.dvAnlKat[ak]["AKName"]);
                if (typeid != (int)DataSetAdmin.dtPortFol.Rows[ir]["WPTypeID"])
                {
                    //Console.WriteLine("typeid1 wechsel typeid:{0} ir:{1} aKName:{2} type:{3}", typeid, ir, aKName, typeid);
                    AnzeigenSummen2(aKName);
                    typeid = (int)DataSetAdmin.dtPortFol.Rows[ir]["WPTypeID"];
                    ak     = DataSetAdmin.dvAnlKat.Find(typeid);
                    aKKurz = Convert.ToString(DataSetAdmin.dvAnlKat[ak]["AKKurz"]);
                    aKName = Convert.ToString(DataSetAdmin.dvAnlKat[ak]["AKName"]);
                }
                float anzahl = (float)DataSetAdmin.dtPortFol.Rows[ir]["WPAnzahl"];
                name = (string)DataSetAdmin.dtPortFol.Rows[ir]["WPName"];
                string iSIN = (string)DataSetAdmin.dtPortFol.Rows[ir]["WPISIN"];
                Zahlungen(iSIN, out suZahlungenlfdJ, out suZahlungenAlle);
                suzahlungen = suZahlungenAlle;
                string kontoNr = "";
                kontoNr = (string)DataSetAdmin.dtPortFol.Rows[ir]["WPKontoNr"];
                aktKurs = Convert.ToDouble(DataSetAdmin.dtPortFol.Rows[ir]["WPKurs"]);
                if (typeid == GeldKto)
                {
                    foreach (var ban in DgBanken.banken)
                    {
                        foreach (BankKonten bako in ban.OCBankKonten)
                        {
                            if (kontoNr == bako.KontoNr8)
                            {
                                aktKurs = Convert.ToDouble(bako.KontoValue8);
                                break;
                            }
                        }
                    }
                }
                kursVorher = Convert.ToDouble(DataSetAdmin.dtPortFol.Rows[ir]["WPKursVorher"]);
                double ertrLZE = 0;
                suAktuWert = anzahl * aktKurs;
                suKaufWert = (double)DataSetAdmin.dtPortFol.Rows[ir]["WPKaufSumme"];
                suErtrag   = suAktuWert + suZahlungenAlle - suKaufWert;
                float heute = 0;
                try {
                    heute = (Single)DataSetAdmin.dtPortFol.Rows[ir]["WPProzentAenderung"];
                } catch (Exception) {
                    heute = 0;
                }
                double rend = 0;
                if (suKaufWert != 0)
                {
                    if (typeid == Anleihe)
                    {
                        rend = (suErtrag * 100 / suKaufWert);
                    }
                    else
                    {
                        rend = ((suAktuWert + suZahlungenAlle - suKaufWert) * 100 / suKaufWert);
                    }
                }
                float rend1j;
                //su0101Wert = (double)(DataSetAdmin.dtPortFol.Rows[ir]["WP0101Summe"]);
                Wertpapier wp1 = Hole0101Wertpapier(iSIN);
                su0101Wert = 0;
                if (wp1 != null)
                {
                    su0101Wert = wp1.Anzahl * wp1.AktKurs;
                }
                //Console.WriteLine("{0} {1,-60} {2,-20} {3,-20} {4,-16} {5,-4} {6,-12}",
                //     wp1.KursZeit, wp1.Name, wp1.ISIN, wp1.KaufDatum, wp1.Kaufsumme, wp1.Type, su0101Wert);
                rend1j = 0;
                if (su0101Wert != 0)
                {
                    rend1j = (float)((suAktuWert + suZahlungenlfdJ - su0101Wert) * 100.00 / su0101Wert);
                }
                DateTime kursZeit  = DateTime.Today;
                DateTime kaufDatum = Convert.ToDateTime("01.01.1980");
                int      depotID   = 0;
                float    zinssatz  = 0;
                DateTime abDatum   = Convert.ToDateTime("01.01.1980");
                DateTime bisDatum  = Convert.ToDateTime("01.01.1980");
                float    sharpe    = 0;
                string   url       = "";
                if (typeid == GeldKto)
                {
                    kursZeit  = (DateTime)DataSetAdmin.dtPortFol.Rows[ir]["WPStand"];
                    rend1j    = 0;
                    rend      = 0;
                    kaufSumme = 0;
                    suErtrag  = 0;
                    depotID   = (int)DataSetAdmin.dtPortFol.Rows[ir]["WPDepotID"];
                    //aktKurs = Convert.ToSingle(DataSetAdmin.dtPortFol.Rows[ir]["WPKtoKurs"]);
                }
                else
                {
                    try {
                        kaufDatum = (DateTime)DataSetAdmin.dtPortFol.Rows[ir]["WPKaufDatum"];
                        kursZeit  = (DateTime)DataSetAdmin.dtPortFol.Rows[ir]["WPStand"];
                        aktKurs   = Convert.ToSingle(DataSetAdmin.dtPortFol.Rows[ir]["WPKurs"]);
                        kaufSumme = (double)DataSetAdmin.dtPortFol.Rows[ir]["WPKaufsumme"];
                        depotID   = (int)DataSetAdmin.dtPortFol.Rows[ir]["WPDepotID"];
                        zinssatz  = (float)DataSetAdmin.dtPortFol.Rows[ir]["WPZinsSatz"];
                        abDatum   = (DateTime)DataSetAdmin.dtPortFol.Rows[ir]["WPAbDatum"];
                        bisDatum  = (DateTime)DataSetAdmin.dtPortFol.Rows[ir]["WPBisDatum"];
                        //if (iSIN == "DE0008490962")
                        //    sharpe = (Single)DataSetAdmin.dtPortFol.Rows[ir]["WPSharpe"];
                        sharpe = (float)DataSetAdmin.dtPortFol.Rows[ir]["WPSharpe"];
                        url    = (string)DataSetAdmin.dtPortFol.Rows[ir]["WPUrlText"];
                    } catch (Exception ex) {
                        MessageBox.Show("ErstelleDgBankenWertpapiere() Fehler: " + ex);
                    }
                }
                if (typeid == Anleihe)
                {
                    double EffZins = EffektivZins(name, anzahl, suKaufWert, anzahl * 100, bisDatum, zinssatz);
                    double stZins  = StueckZins(name, anzahl, suKaufWert, anzahl * 100, bisDatum, zinssatz);
                    aktKurs += stZins;
                    //suAktuWert = anzahl * aktKurs;
                    double suErtragAktWert = suAktuWert + suZahlungenAlle - suKaufWert;
                    // 1. Berechnung für:  Bis Laufzeitende halten.
                    ertrLZE = EffZins * suKaufWert / 100;
                    //if (MyPortfolio.glGridAnleihenType == MyPortfolio.BerechnungsmethodeAktuellerWert)
                    suErtrag = suErtragAktWert;     // 2. Berechnung für:  Aktueller Wert.
                                                    //if (MyPortfolio.glGridAnleihenType == MyPortfolio.BerechnungsmethodeBesterWert)
                    {
                        if (ertrLZE > suErtrag)     // 3. Berechnung für:  Bester Wert von 1. und 2.
                        {
                            suErtrag = ertrLZE;
                        }
                        else
                        {
                            suErtrag = suErtragAktWert;
                        }
                    }
                }
                string strGrAnz = string.Empty;
                if (typeid == 80)
                {
                    strGrAnz = "Nicht anzeigen";
                }
                DgBanken._wertpapiere.Add(new Wertpapier {
                    Anzahl     = anzahl,
                    Name       = name,
                    Heute      = heute,
                    Rend       = rend,
                    Rend1J     = rend1j,
                    Ertrag     = suErtrag,
                    KursZeit   = kursZeit,
                    AktKurs    = aktKurs,
                    KursVorher = kursVorher,
                    AktWert    = suAktuWert,
                    Zahlungen  = suzahlungen, //suZahlungenAlle,
                    Kaufsumme  = kaufSumme,
                    KaufDatum  = kaufDatum,
                    DepotID    = depotID,
                    KontoNr    = kontoNr,
                    ISIN       = iSIN,
                    Type       = (int)typeid,
                    AKName     = aKName,
                    AKKurz     = aKKurz,
                    Zins       = zinssatz,
                    AbDatum    = abDatum,
                    BisDatum   = bisDatum,
                    Sharpe     = sharpe,
                    URL        = url,
                    IsSumme    = false
                });
                suZahlungen2 += suZahlungenAlle;
                if (typeid != GeldKto)
                {
                    suKaufWert2 += suKaufWert;
                }
                su0101Wert2 += su0101Wert;
                //Console.WriteLine("{0,36} su0101Wert: {1,10} su0101Wert2: {2,10}  su0101Wert3: {3,10}",
                //    name, su0101Wert, su0101Wert2, su0101Wert3);
                suAktuWert2 += suAktuWert;
                suErtrag2   += suErtrag;

                /*  if (String.Compare(iSIN, "999") <= 0)
                 * {
                 *   suAktuWertOK += suAktuWert;
                 *   suZahlungenOK += suZahlungenlfdJ;
                 *   suKaufWertOK += suKaufWert;
                 *   su0101WertOK += su0101Wert;
                 *   suErtragOK += suErtrag;
                 * } */
                //Console.WriteLine("{0} {1, -38} {2, -14} {3, 10}", ir, name, iSIN, String.Format("{0:###,##0.00;#0.00-;' '}", suAktuWert));
                suZahlungenlfdJ = 0;
                suAktuWert      = 0;
                suKaufWert      = 0;
                su0101Wert      = 0;
                suErtrag        = 0;
            }   // ir ... dtPortFol.Rows.Count
                // Ende Wertpapiere loop
            ConWrLi("---- -TW4- ");
            AnzeigenSummen2(aKName);
            aKName = "EndSummen";
            DgBanken._wertpapiere.Add(new Wertpapier {
                Anzahl   = 0,
                Name     = "Summe Depot",
                Heute    = 0,
                Rend     = 0,
                Rend1J   = 0,
                Ertrag   = suErtragWP,
                KursZeit = keinDatum,
                AktKurs  = 0,
                //KtoKurs = 0,
                AktWert   = suAktuWertWP,
                Zahlungen = suZahlungenWP,
                Kaufsumme = suKaufWertWP,
                KaufDatum = keinDatum,
                DepotID   = 0,
                KontoNr   = "",
                ISIN      = "",
                Type      = 98,
                AKName    = aKName,
                AKKurz    = aKKurz,
                Zins      = 0,
                AbDatum   = keinDatum,
                BisDatum  = keinDatum,
                Sharpe    = 0,
                URL       = "",
                IsSumme   = true
            });

            double re3 = 0.00;

            if (suKaufWert != 0.00)
            {
                re3 = ((suAktuWert3 - suKaufWert3) * 100 / suKaufWert3);
            }
            aKName = "EndSummen";
            Wertpapier wp = new Wertpapier {
                Anzahl   = 0,
                Name     = "Summe Gesamt",
                Heute    = 0,
                Rend     = re3,
                Rend1J   = 0,
                Ertrag   = suErtrag3,
                KursZeit = keinDatum,
                AktKurs  = 0,
                //KtoKurs = 0,
                AktWert   = suAktuWert3,
                Zahlungen = suZahlungen3,
                Kaufsumme = suKaufWert3,
                KaufDatum = keinDatum,
                DepotID   = 0,
                KontoNr   = "",
                ISIN      = "",
                Type      = 98,
                AKName    = aKName,
                AKKurz    = aKKurz,
                Zins      = 0,
                AbDatum   = keinDatum,
                BisDatum  = keinDatum,
                Sharpe    = 0,
                URL       = "",
                IsSumme   = true
            };

            DgBanken._wertpapiere.Add(wp);
            CollectionViewSource.GetDefaultView(mw.dgWertpapiere.ItemsSource).Refresh();
        }