public static SavedTransactions getInstance()
 {
     if (instance == null)
     {
         instance = new SavedTransactions();
     }
     return(instance);
 }
        public void setUserStatistics(User currentUser)
        {
            int      numberOfTransactions = 0;
            int      totalIncome          = 0;
            int      totalSpendings       = 0;
            string   latestImportDate     = "";
            string   todaysDate           = DateTime.Now.ToString("yyyy-MM-dd");
            DateTime todayDate            = Convert.ToDateTime(todaysDate);

            usernameLabel.Content = currentUser.getUsername();
            foreach (var transactions in SavedTransactions.getSavedTransactionsStock())
            {
                string username = currentUser.getUsername();
                if (transactions.getImporter() == username)
                {
                    numberOfTransactions++;
                    latestImportDate = transactions.getWriteDate();
                }
            }
            noTransactionsLabel.Content = numberOfTransactions;
            if (latestImportDate.Length >= 12)
            {
                lastImportDateLabel.Content = latestImportDate.Substring(0, 12);
            }
            else
            {
                lastImportDateLabel.Content = latestImportDate;
            }
            DateTime importDate;

            if (latestImportDate.Length > 0)
            {
                importDate = Convert.ToDateTime(latestImportDate);
                float diffTicks = (todayDate - importDate).Days;
                if (diffTicks >= 30)
                {
                    urgencyLabel.Content              = "Recommended!";
                    urgencyLabel.Foreground           = new SolidColorBrush(Color.FromRgb(217, 30, 24));
                    mainWindow.exclamImage.Visibility = System.Windows.Visibility.Visible;
                }
                else
                {
                    urgencyLabel.Content    = "Not urgent";
                    urgencyLabel.Foreground = new SolidColorBrush(Color.FromRgb(46, 204, 113));
                    if (mainWindow.exclamImage.Visibility != System.Windows.Visibility.Visible)
                    {
                        mainWindow.exclamImage.Visibility = System.Windows.Visibility.Hidden;
                    }
                }
            }
            else
            {
                urgencyLabel.Content        = "You haven't imported yet!";
                lastImportDateLabel.Content = "You haven't imported yet!";
            }
        }
Ejemplo n.º 3
0
 private TransactionMain(MainWindow mainWindow, List <Transaction> tableAttribues, String accountNumber)
 {
     this.DataContext = this;
     InitializeComponent();
     if (TransactionTableXAML != null)
     {
         TransactionTableXAML.Items.Clear();
     }
     if (tableAttribues != null && tableAttribues != this.tableAttribues)
     {
         foreach (var transaction in tableAttribues)
         {
             if (transaction.getWriteDate() != null && transaction.getWriteDate().Length >= 12)
             {
                 transaction.setWriteDate(transaction.getWriteDate().Substring(0, 12));
             }
             else
             {
                 transaction.setWriteDate(DateTime.Now.ToString("yyyy/MM/dd"));
             }
         }
     }
     else if (tableAttribues == null)
     {
         foreach (var transaction in SavedTransactions.getSavedTransactions())
         {
             if (transaction.getWriteDate() != null && transaction.getWriteDate().Length != 12)
             {
                 transaction.setWriteDate(transaction.getWriteDate().Substring(0, 12));
             }
             else
             {
                 transaction.setWriteDate(DateTime.Now.ToString("yyyy/MM/dd"));
             }
         }
     }
     if ((this.tableAttribues != tableAttribues) && (tableAttribues != null))
     {
         this.tableAttribues = tableAttribues;
         if (accountNumber.Equals(""))
         {
             addAtribuesToTable(); //we have imported and saved files in this case
                                   //the accountNumber is already matching
         }
         else
         {
             addAtribuesToTable(accountNumber);
         }
     }
     else
     {
         addAtribuesToTable(accountNumber);
     }
 }
        public void displayAllData()
        {
            SeriesCollection = new SeriesCollection();
            Labels           = new string[SavedTransactions.getSavedTransactionsStock().Count];
            LineSeries lineSeries = new LineSeries();

            lineSeries.Title = "All";
            ChartValues <int> stats              = new ChartValues <int>();
            List <DateTime>   distinctDays       = new List <DateTime>();
            List <string>     distinctDaysString = new List <string>();
            int counter = 0;

            foreach (var transactions in SavedTransactions.getSavedTransactionsStock())
            {
                DateTime dt = DateTime.ParseExact(transactions.getWriteDate(), "yyyy-MM-dd", CultureInfo.InvariantCulture);
                if (!distinctDays.Contains(dt))
                {
                    distinctDays.Add(dt);
                }
            }
            distinctDays.Sort();

            Dictionary <string, int> importedTransactionsToDays = new Dictionary <string, int>();

            foreach (var x in distinctDays)
            {
                counter = 0;
                string[] splittedDate = x.ToString().Split(' ');
                string   date         = splittedDate[0] + splittedDate[1] + splittedDate[2];
                date = date.Remove(date.Length - 1);
                date = date.Replace('.', '-');
                foreach (var y in SavedTransactions.getSavedTransactionsStock())
                {
                    if (date == y.getWriteDate())
                    {
                        counter++;
                    }
                }
                importedTransactionsToDays.Add(date, counter);
            }
            int i = 0;

            foreach (var x in importedTransactionsToDays)
            {
                stats.Add(x.Value);
                Labels[i] = x.Key.ToString();
                i++;
            }
            lineSeries.Values = stats;
            SeriesCollection.Add(lineSeries);
        }
Ejemplo n.º 5
0
        private void importHistoryButton_Click(object sender, RoutedEventArgs e)
        {
            List <string> stockNames = new List <string>();

            foreach (var x in SavedTransactions.getSavedTransactionsStock())
            {
                if (!stockNames.Contains(x.getStockName()))
                {
                    stockNames.Add(x.getStockName());
                }
            }
            ImportStatsChartStock importStatsChart = new ImportStatsChartStock(stockNames);

            importStatsChart.displayAllData();
            mainWindow.MainFrame.Content = importStatsChart;
        }
        public void setTableAttributes()
        {
            //Binding is the reason for .ToList() , the count changed - it freezes it is not there
            List <Stock> allTransactions = SavedTransactions.getSavedTransactionsStock();
            List <Stock> reference       = new List <Stock>();

            stockChoices = new List <string>();
            foreach (var tableAttribute in allTransactions)
            {
                if (tableAttribute.getImporter() == mainWindow.getCurrentUser().getUsername())
                {
                    reference.Add(tableAttribute);
                }
                if (!stockChoices.Contains(tableAttribute.getStockName()))
                {
                    stockChoices.Add(tableAttribute.getStockName());
                }
            }
            tableAttributes = new List <Stock>(reference);
            if (tableAttributes != null)
            {
                foreach (var transaction in tableAttributes)
                {
                    if (transaction.getProfit() != null && transaction.getProfit() != "-")
                    {
                        try
                        {
                            double profit = double.Parse(transaction.getProfit());
                            var    f      = new NumberFormatInfo {
                                NumberGroupSeparator = "."
                            };
                            var s = profit.ToString("n", f);
                            transaction.setProfit(s);
                        }
                        catch (Exception e)
                        {
                        }
                    }
                    else
                    {
                        transaction.setProfit("-");
                    }
                }
            }
        }
Ejemplo n.º 7
0
 private void addAtribuesToTable(String accountNumber)
 {
     if (accountNumber.Equals("empty"))//only imported files
     {
         foreach (var attribute in tableAttribues)
         {
             TransactionTableXAML.Items.Add(attribute);
         }
     }
     else
     {
         foreach (var attribute in SavedTransactions.getSavedTransactions())
         {
             if (attribute.getAccountNumber().Equals(accountNumber))//only saved files
             {
                 TransactionTableXAML.Items.Add(attribute);
             }
         }
     }
 }
        public void setTableAttributes()
        {
            bankChoices = new List <string>();
            List <Transaction> allTransactions = SavedTransactions.getSavedTransactionsBank();
            List <Transaction> reference       = new List <Transaction>();

            string[] splittedAccountNumbers = mainWindow.getCurrentUser().getAccountNumber().Split(',');
            foreach (var tableAttribute in allTransactions)
            {
                for (int i = 0; i < splittedAccountNumbers.Length; i++)
                {
                    if (tableAttribute.getAccountNumber() == splittedAccountNumbers[i])
                    {
                        reference.Add(tableAttribute);
                        break;
                    }
                }
            }
            if (tableAttributes != null)
            {
                foreach (var transaction in reference)
                {
                    if (transaction.getWriteDate() != null && transaction.getWriteDate().Length >= 12)
                    {
                        transaction.setWriteDate(transaction.getWriteDate().Substring(0, 12));
                    }
                    else
                    {
                        transaction.setWriteDate(DateTime.Now.ToString("yyyy/MM/dd").Substring(0, 12));
                    }
                }
            }
            tableAttributes = reference;
            foreach (var x in tableAttributes)
            {
                if (!bankChoices.Contains(x.getBankname()))
                {
                    bankChoices.Add(x.getBankname());
                }
            }
        }
        public void displayData(string stockName)
        {
            SeriesCollection = new SeriesCollection();
            Labels           = new string[SavedTransactions.getSavedTransactionsStock().Count];
            LineSeries lineSeries = new LineSeries();

            lineSeries.Title = stockName;
            ChartValues <int> stats              = new ChartValues <int>();
            List <DateTime>   distinctDays       = new List <DateTime>();
            List <string>     distinctDaysString = new List <string>();
            int counter = 0;

            foreach (var transactions in SavedTransactions.getSavedTransactionsStock())
            {
                if (transactions.getStockName() == stockName)
                {
                    DateTime dt = DateTime.ParseExact(transactions.getWriteDate(), "yyyy-MM-dd", CultureInfo.InvariantCulture);
                    if (!distinctDays.Contains(dt))
                    {
                        distinctDays.Add(dt);
                    }
                }
            }
            distinctDays.Sort();
            distinctDays.Reverse();

            Dictionary <string, int> importedTransactionsToDays = new Dictionary <string, int>();

            foreach (var x in distinctDays)
            {
                counter = 0;
                string[] splittedDate = x.ToString().Split(' ');
                string   date         = splittedDate[0] + splittedDate[1] + splittedDate[2];
                date = date.Remove(date.Length - 1);
                date = date.Replace('.', '-');
                foreach (var y in SavedTransactions.getSavedTransactionsStock())
                {
                    if (date == y.getWriteDate() && stockName == y.getStockName())
                    {
                        counter++;
                    }
                }
                importedTransactionsToDays.Add(date, counter);
            }
            int i = 0;

            foreach (var x in importedTransactionsToDays)
            {
                stats.Add(x.Value);
                Labels[i] = x.Key.ToString();
                i++;
            }
            lineSeries.Values = stats;
            SeriesCollection.Add(lineSeries);

            /*
             * //modifying the series collection will animate and update the chart
             * SeriesCollection.Add(new LineSeries
             * {
             *  Title = "Series 4",
             *  Values = new ChartValues<double> { 5, 3, 2, 4 },
             *  LineSmoothness = 0, //0: straight lines, 1: really smooth lines
             *  PointGeometry = Geometry.Parse("m 25 70.36218 20 -28 -20 22 -8 -6 z"),
             *  PointGeometrySize = 50,
             *  PointForeground = Brushes.Gray
             * });
             *
             * //modifying any series values will also animate and update the chart
             * SeriesCollection[3].Values.Add(5d);
             */
        }
        private List <Transaction> newTransactions(List <Transaction> importedTransactions) //check if the transaction is already exported or not
        {
            List <Transaction> savedTransactions  = SavedTransactions.getSavedTransactions();
            List <Transaction> neededTransactions = new List <Transaction>();

            importerAccountNumber = importedTransactions[0].getAccountNumber();//account number is the same for all
            ThreadStart threadStart = delegate
            {
                writeAccountNumberToSql(importerAccountNumber);
            };
            Thread sqlThread = new Thread(threadStart);

            sqlThread.IsBackground = true;
            sqlThread.Start();
            sqlThread.Join();
            mainWindow.setAccountNumber(importerAccountNumber);
            if (savedTransactions.Count != 0)//if the export file was not empty we scan the list
            {
                List <Transaction> tempTransactions = new List <Transaction>();
                foreach (var saved in savedTransactions)
                {
                    //egy külön listába tesszük azokat az elemeket a már elmentet tranzakciókból ahol a bankszámlaszám
                    //megegyezik az importálandó bankszámlaszámmal
                    if (saved.getAccountNumber().Equals(importerAccountNumber))
                    {
                        tempTransactions.Add(saved);
                    }
                }
                if (tempTransactions.Count != 0)//ha van olyan már elmentett tranzakció aminek az  a bankszámlaszáma mint amit importálni akarunk
                {
                    int          explicitImported = 0;
                    StreamWriter logFile          = new StreamWriter("C:\\Users\\Tocki\\Desktop\\transactionsLog.txt", append: true);
                    foreach (var imported in importedTransactions)
                    {
                        bool redundant = false;
                        foreach (var saved in tempTransactions)
                        {
                            if (saved.getTransactionDate().Equals(imported.getTransactionDate()) &&
                                saved.getTransactionPrice().Equals(imported.getTransactionPrice()) &&
                                saved.getBalance_rn() == imported.getBalance_rn())
                            {
                                redundant = true;
                                if (ImportMainPage.getInstance(mainWindow).alwaysAsk == true)
                                {
                                    if (MessageBox.Show("This transaction is most likely to be in the Databse already!\n -- Transaction date: " + imported.getTransactionDate() + "\n-- Transaction price: " + imported.getTransactionPrice()
                                                        + "\n-- Imported on: " + saved.getWriteDate().Substring(0, 12) + "\nWould you like to import it anyways?",
                                                        "Imprt alert!",
                                                        MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                                    {
                                        neededTransactions.Add(imported);
                                        explicitImported++;
                                        logFile.WriteLine("AccountNumber: " + imported.getAccountNumber() +
                                                          "\n ImportDate: " + imported.getTransactionDate() +
                                                          "\n TransactionPrice: "
                                                          + imported.getTransactionPrice() + " *");
                                    }
                                }
                                break;
                            }
                        }
                        if (redundant == false)
                        {
                            neededTransactions.Add(imported);;
                        }
                    }
                    logFile.Close();

                    /*
                     * if(neededTransactions.Count==0)
                     * {
                     *  //mainWindow.setTableAttributes(savedTransactions, importerAccountNumber);
                     *  //only pass the saved transactions because we didn't add new
                     *  //and the accountNumber so we can select it by user
                     * }
                     * else
                     * {
                     *  //we pass both the saved and the new transcations
                     *  List<Transaction> savedAndImported=new List<Transaction>();
                     *
                     *  //tempTrancations containts saved Transactions where the accountnumber matches with the imported Transactions
                     *  foreach (var attribue in tempTransactions)
                     *  {
                     *      savedAndImported.Add(attribue);
                     *  }
                     *  foreach (var attribue in neededTransactions)
                     *  {
                     *      savedAndImported.Add(attribue);
                     *  }
                     *  //mainWindow.setTableAttributes(savedAndImported,true);
                     * }
                     */
                    if (MessageBox.Show("You have imported " + neededTransactions.Count + " new transaction(s)!\n" +
                                        "(" + (tempTransactions.Count - explicitImported) + " was already imported)", "Import alert!",
                                        MessageBoxButton.OK, MessageBoxImage.Information) == MessageBoxResult.OK)
                    {
                        return(neededTransactions);
                    }
                    return(neededTransactions);
                }
                else //nincs olyan elmentett tranzakció aminek az lenne a bankszámlaszáma mint amit importálni akarunk
                     //tehát az összeset importáljuk
                {
                    //mainWindow.setTableAttributes(importedTransactions,"empty");
                    if (MessageBox.Show("You have imported " + importedTransactions.Count + " new transaction(s)!\n", "Import alert!",
                                        MessageBoxButton.OK, MessageBoxImage.Information) == MessageBoxResult.OK)
                    {
                        return(importedTransactions);
                    }
                    return(importedTransactions);
                }
            }
            else // még nincs elmentett tranzakció
                 // tehát az összeset importáljuk
            {
                //mainWindow.setTableAttributes(importedTransactions,"empty");
                if (MessageBox.Show("You have imported " + importedTransactions.Count + " new transaction(s)!\n", "Import alert!",
                                    MessageBoxButton.OK, MessageBoxImage.Information) == MessageBoxResult.OK)
                {
                    return(importedTransactions);
                }
                return(importedTransactions);
            }
        }
        public ExportTransactions(List <Transaction> transactions, MainWindow mainWindow, string currentFileName)
        {
            for (int i = 0; i < transactions.Count; i++)
            {
                string [] spaceSplitted = transactions[i].getTransactionDate().Split(' ');
                string    dateString    = "";
                for (int j = 0; j < spaceSplitted.Length; j++)
                {
                    dateString += spaceSplitted[j];
                }
                Console.WriteLine(dateString.Substring(0, 11));
            }
            this.mainWindow = mainWindow;
            MessageBox.Show("Exporting data from: " + currentFileName, "", MessageBoxButton.OK);
            //BUT FIRST - check if the transaction is already exported or not
            List <Transaction> neededTransactions = newTransactions(transactions);

            SavedTransactions.addToSavedTransactions(neededTransactions);//adding the freshyl imported transactions to the saved
            WriteWorkbook  = excel.Workbooks.Open(@"C:\Users\Tocki\Desktop\Kimutatas.xlsx");
            WriteWorksheet = WriteWorkbook.Worksheets[1];
            if (neededTransactions != null)
            {
                string todaysDate = DateTime.Now.ToString("yyyy-MM-dd");
                int    row_number = 1;
                while (WriteWorksheet.Cells[row_number, 1].Value != null)
                {
                    row_number++; // get the current last row
                }
                foreach (var transctn in neededTransactions)
                {
                    WriteWorksheet.Cells[row_number, 1].Value = todaysDate;
                    WriteWorksheet.Cells[row_number, 2].Value = transctn.getTransactionDate();
                    WriteWorksheet.Cells[row_number, 3].Value = transctn.getBalance_rn();
                    WriteWorksheet.Cells[row_number, 7].Value = transctn.getTransactionPrice();
                    if (transctn.getTransactionPrice() < 0)
                    {
                        WriteWorksheet.Cells[row_number, 9].Value  = transctn.getTransactionPrice();
                        WriteWorksheet.Cells[row_number, 11].Value = transctn.getTransactionPrice();
                        WriteWorksheet.Cells[row_number, 15].Value = "havi";
                    }
                    else
                    {
                        WriteWorksheet.Cells[row_number, 8].Value  = transctn.getTransactionPrice();
                        WriteWorksheet.Cells[row_number, 10].Value = transctn.getTransactionPrice();
                        WriteWorksheet.Cells[row_number, 11].Value = transctn.getTransactionPrice();
                        WriteWorksheet.Cells[row_number, 15].Value = "havi";
                    }
                    WriteWorksheet.Cells[row_number, 14].Value = transctn.getTransactionDescription();
                    WriteWorksheet.Cells[row_number, 16].Value = transctn.getAccountNumber();
                    row_number++;
                    Range line = (Range)WriteWorksheet.Rows[row_number];
                    line.Insert();
                }
                try
                {
                    //WriteWorkbook.SaveAs(@"C:\Users\Tocki\Desktop\Kimutatas.xlsx");
                    excel.ActiveWorkbook.Save();
                    excel.Workbooks.Close();
                    excel.Quit();
                }
                catch (Exception e)
                {
                }
                ImportMainPage.getInstance(mainWindow).setUserStatistics(mainWindow.getCurrentUser());
            }
            else
            {
                return;
            }
        }
        public ExportTransactions(List <Stock> customTransactions, MainWindow mainWindow, string currentFileName, string customEarning)
        {
            for (int i = 0; i < customTransactions.Count; i++)
            {
                customTransactions[i].setImporter(mainWindow.getCurrentUser().getUsername());
                customTransactions[i].setEarningMethod(customEarning);
            }
            MessageBox.Show("Exporting data from: " + currentFileName, "", MessageBoxButton.OK);
            SavedTransactions.addToSavedTransactionsStock(customTransactions);    //adding the freshyl imported transactions to the saved
            WriteWorkbook  = excel.Workbooks.Open(@"C:\Users\Tocki\Desktop\Kimutatas.xlsx");
            WriteWorksheet = WriteWorkbook.Worksheets[2];
            string todaysDate = DateTime.Now.ToString("yyyy-MM-dd");
            int    row_number = 1;

            while (WriteWorksheet.Cells[row_number, 1].Value != null)
            {
                row_number++;     // get the current last row
            }
            for (int i = 0; i < customTransactions.Count; i++)
            {
                WriteWorksheet.Cells[row_number, 1].Value = todaysDate;
                WriteWorksheet.Cells[row_number, 2].Value = customTransactions[i].getTransactionDate();
                WriteWorksheet.Cells[row_number, 3].Value = customTransactions[i].getStockName();
                WriteWorksheet.Cells[row_number, 4].Value = customTransactions[i].getStockPrice();
                Regex typeRegex1 = new Regex(@"Eladott");
                Regex typeRegex2 = new Regex(@"Sold");
                Regex typeRegex3 = new Regex(@"Sell");
                Regex typeRegex4 = new Regex(@"Vásárolt");
                Regex typeRegex5 = new Regex(@"Bought");
                Regex typeRegex6 = new Regex(@"Buy");
                if (typeRegex1.IsMatch(customTransactions[i].getTransactionType()) ||
                    typeRegex2.IsMatch(customTransactions[i].getTransactionType()) ||
                    typeRegex3.IsMatch(customTransactions[i].getTransactionType()))                                           //Eladott
                {
                    WriteWorksheet.Cells[row_number, 5].Value  = customTransactions[i].getOriginalQuantityForCustomEarning(); //!! eredeti quantity
                    WriteWorksheet.Cells[row_number, 9].Value  = customTransactions[i].getProfit();
                    WriteWorksheet.Cells[row_number, 10].Value = customEarning;
                }
                else if (typeRegex4.IsMatch(customTransactions[i].getTransactionType()) ||
                         typeRegex5.IsMatch(customTransactions[i].getTransactionType()) ||
                         typeRegex6.IsMatch(customTransactions[i].getTransactionType()))                                                                             //Vásárolt
                {
                    WriteWorksheet.Cells[row_number, 6].Value = customTransactions[i].getOriginalQuantityForCustomEarning();                                         //! eredeti quantity
                    WriteWorksheet.Cells[row_number, 8].Value = customTransactions[i].getOriginalQuantityForCustomEarning() * customTransactions[i].getStockPrice(); //!! eredeti quantity
                }
                WriteWorksheet.Cells[row_number, 7].Value  = customTransactions[i].getQuantity();                                                                    //!! mostani quantity
                WriteWorksheet.Cells[row_number, 11].Value = mainWindow.getCurrentUser().getUsername();
                row_number++;
                Range line = (Range)WriteWorksheet.Rows[row_number];
                line.Insert();
            }
            try
            {
                excel.ActiveWorkbook.Save();
                excel.Workbooks.Close();
                excel.Quit();
            }
            catch (Exception e)
            {
            }
            ImportPageStock.getInstance(mainWindow).setUserStatistics(mainWindow.getCurrentUser());
        }
Ejemplo n.º 13
0
        public void setUserStatistics(User currentUser)
        {
            int      numberOfTransactions = 0;
            int      totalIncome          = 0;
            int      totalSpendings       = 0;
            string   latestImportDate     = "";
            string   todaysDate           = DateTime.Now.ToString("yyyy-MM-dd");
            DateTime todayDate            = Convert.ToDateTime(todaysDate);

            usernameLabel.Content = currentUser.getUsername();
            string accountNumber = currentUser.getAccountNumber();

            string[] splittedAccountNumber = accountNumber.Split(',');
            accountNumbers = new List <string>();
            banks          = new List <string>();
            for (int i = 0; i < splittedAccountNumber.Length; i++)
            {
                accountNumbers.Add(splittedAccountNumber[i]);
            }
            foreach (var transactions in SavedTransactions.getSavedTransactionsBank())
            {
                if (!banks.Contains(transactions.getBankname()))
                {
                    banks.Add(transactions.getBankname());
                }
                //it the user has more than 1 account number it separated by commas
                for (int i = 0; i < splittedAccountNumber.Length; i++)
                {
                    if (transactions.getAccountNumber() == splittedAccountNumber[i])
                    {
                        numberOfTransactions++;
                        latestImportDate = transactions.getWriteDate();
                        if (transactions.getTransactionPrice() > 0)
                        {
                            totalIncome += transactions.getTransactionPrice();
                        }
                        else
                        {
                            totalSpendings += transactions.getTransactionPrice();
                        }
                    }
                }
            }
            if (latestImportDate.Length > 12)
            {
                lastImportDateLabel.Content = latestImportDate.Substring(0, 12);
            }
            else
            {
                lastImportDateLabel.Content = latestImportDate;
            }
            noTransactionsLabel.Content = numberOfTransactions;
            DateTime importDate;

            if (latestImportDate.Length > 0)
            {
                importDate = Convert.ToDateTime(latestImportDate);
                float diffTicks = (todayDate - importDate).Days;
                if (diffTicks >= 30)
                {
                    urgencyLabel.Content              = "Recommended!";
                    urgencyLabel.Foreground           = new SolidColorBrush(Color.FromRgb(217, 30, 24));
                    mainWindow.exclamImage.Visibility = System.Windows.Visibility.Visible;
                }
                else
                {
                    urgencyLabel.Content    = "Not urgent";
                    urgencyLabel.Foreground = new SolidColorBrush(Color.FromRgb(46, 204, 113));
                    if (mainWindow.exclamImage.Visibility != System.Windows.Visibility.Visible)
                    {
                        mainWindow.exclamImage.Visibility = System.Windows.Visibility.Hidden;
                    }
                }
            }
            else
            {
                urgencyLabel.Content        = "You haven't imported yet!";
                lastImportDateLabel.Content = "You haven't imported yet!";
            }
            if (SavedTransactions.getSavedTransactionsBank().Count > 0)
            {
                importHistoryButton.Visibility = Visibility.Visible;
            }
            else
            {
                importHistoryButton.Visibility = Visibility.Hidden;
            }
        }
Ejemplo n.º 14
0
        public void getUserStatistics(string accountNumber)
        {
            urgencyLabel.Foreground = new SolidColorBrush(Color.FromRgb(0, 0, 0));
            int      totalIncome          = 0;
            int      totalSpendings       = 0;
            int      numberOfTransactions = 0;
            string   lastImportDate       = "";
            string   todaysDate           = DateTime.Now.ToString("yyyy-MM-dd");
            DateTime todayDate            = Convert.ToDateTime(todaysDate);

            usernameLabel.Content = "Test";
            foreach (var transactions in SavedTransactions.getSavedTransactions())
            {
                if (transactions.getAccountNumber().Equals(accountNumber))
                {
                    numberOfTransactions++;
                    lastImportDate = transactions.getWriteDate();//always overwrites it --- todo (more logic needed lulz)
                    if (transactions.getTransactionPrice() > 0)
                    {
                        totalIncome += transactions.getTransactionPrice();
                    }
                    else
                    {
                        totalSpendings += transactions.getTransactionPrice();
                    }
                }
            }
            if (lastImportDate == null)
            {
                lastImportDate = DateTime.Now.ToString("yyyy-MM-dd");
            }
            if (lastImportDate.Length > 12)
            {
                lastImportDateLabel.Content = lastImportDate.Substring(0, 12);
            }
            else
            {
                lastImportDateLabel.Content = lastImportDate;
            }
            noTransactionsLabel.Content = numberOfTransactions;
            if (lastImportDate.Length > 0)
            {
                DateTime importDate = Convert.ToDateTime(lastImportDate);
                int      diffDays   = (todayDate - importDate).Days;
                if (diffDays >= 30)
                {
                    urgencyLabel.Content    = "Recommended!";
                    urgencyLabel.Foreground = new SolidColorBrush(Color.FromRgb(217, 30, 24));
                }
                else
                {
                    urgencyLabel.Content    = "Not urgent";
                    urgencyLabel.Foreground = new SolidColorBrush(Color.FromRgb(46, 204, 113));
                }
            }
            else
            {
                urgencyLabel.Content        = "You haven't imported yet!";
                lastImportDateLabel.Content = "You haven't imported yet!";
            }
        }
Ejemplo n.º 15
0
 private void startUpReadIn()
 {
     //reading in saved transactions
     SavedTransactions.getInstance().readOutSavedBankTransactions();
     SavedTransactions.getInstance().readOutStockSavedTransactions();
 }
Ejemplo n.º 16
0
 private void startUpReadIn()
 {
     //reading in the already saved transactions
     SavedTransactions.getInstance();
 }
        public ExportTransactions(List <Stock> transactions, MainWindow mainWindow, string currentFileName)
        {
            string earningMethod = ImportPageStock.getInstance(mainWindow).getMethod();
            //we need the original quantity that's we going to get it from the original transactions List
            //(after the switch it is zero for every object)

            List <int> quantities = new List <int>();

            for (int i = 0; i < transactions.Count; i++)
            {
                quantities.Add(transactions[i].getQuantity());
            }
            //but we need the profits too , which we going to get from the tempTransactions

            switch (earningMethod)
            {
            case "FIFO":
                stockExportFIFO(ref transactions);
                break;

            case "LIFO":
                stockExportLIFO(ref transactions);
                break;

            case "CUSTOM":
                mainWindow.MainFrame.Content = new CustomStockExportPage(mainWindow, transactions, currentFileName);
                break;
            }
            if (earningMethod == "FIFO" || earningMethod == "LIFO")
            {
                //for DataBaseDataStock
                for (int i = 0; i < transactions.Count; i++)
                {
                    string value = quantities[i] + " (" + transactions[i].getQuantity() + ")";
                    transactions[i].setOriginalAndSellQuantity(value);
                    transactions[i].setImporter(mainWindow.getCurrentUser().getUsername());
                    transactions[i].setEarningMethod(earningMethod);
                }
                MessageBox.Show("Exporting data from: " + currentFileName, "", MessageBoxButton.OK);
                SavedTransactions.addToSavedTransactionsStock(transactions);//adding the freshyl imported transactions to the saved
                WriteWorkbook  = excel.Workbooks.Open(@"C:\Users\Tocki\Desktop\Kimutatas.xlsx");
                WriteWorksheet = WriteWorkbook.Worksheets[2];
                string todaysDate = DateTime.Now.ToString("yyyy-MM-dd");
                int    row_number = 1;
                while (WriteWorksheet.Cells[row_number, 1].Value != null)
                {
                    row_number++; // get the current last row
                }
                for (int i = 0; i < transactions.Count; i++)
                {
                    WriteWorksheet.Cells[row_number, 1].Value = todaysDate;
                    WriteWorksheet.Cells[row_number, 2].Value = transactions[i].getTransactionDate();
                    WriteWorksheet.Cells[row_number, 3].Value = transactions[i].getStockName();
                    WriteWorksheet.Cells[row_number, 4].Value = transactions[i].getStockPrice();
                    Regex typeRegex1 = new Regex(@"Eladott");
                    Regex typeRegex2 = new Regex(@"Sold");
                    Regex typeRegex3 = new Regex(@"Sell");
                    Regex typeRegex4 = new Regex(@"Vásárolt");
                    Regex typeRegex5 = new Regex(@"Bought");
                    Regex typeRegex6 = new Regex(@"Buy");
                    if (typeRegex1.IsMatch(transactions[i].getTransactionType()) ||
                        typeRegex2.IsMatch(transactions[i].getTransactionType()) ||
                        typeRegex3.IsMatch(transactions[i].getTransactionType()))   //Eladott
                    {
                        WriteWorksheet.Cells[row_number, 5].Value  = quantities[i]; //!! eredeti quantity
                        WriteWorksheet.Cells[row_number, 9].Value  = transactions[i].getProfit();
                        WriteWorksheet.Cells[row_number, 10].Value = earningMethod;
                    }
                    else if (typeRegex4.IsMatch(transactions[i].getTransactionType()) ||
                             typeRegex5.IsMatch(transactions[i].getTransactionType()) ||
                             typeRegex6.IsMatch(transactions[i].getTransactionType()))                               //Vásárolt
                    {
                        WriteWorksheet.Cells[row_number, 6].Value = quantities[i];                                   //! eredeti quantity
                        WriteWorksheet.Cells[row_number, 8].Value = quantities[i] * transactions[i].getStockPrice(); //!! eredeti quantity
                    }
                    WriteWorksheet.Cells[row_number, 7].Value  = transactions[i].getQuantity();                      //!! mostani quantity
                    WriteWorksheet.Cells[row_number, 11].Value = mainWindow.getCurrentUser().getUsername();
                    row_number++;
                    Range line = (Range)WriteWorksheet.Rows[row_number];
                    line.Insert();
                }
                try
                {
                    excel.ActiveWorkbook.Save();
                    excel.Workbooks.Close();
                    excel.Quit();
                }
                catch (Exception e)
                {
                }
                ImportPageStock.getInstance(mainWindow).setUserStatistics(mainWindow.getCurrentUser());
            }
        }