Exemple #1
0
        private void SaveTakeOut()
        {
            if (String.IsNullOrEmpty(EditedTransaction.TransactionValue.ToString()))
            {
                OnMessageApplication("A mező üres");
                return;
            }

            if (BankAccounts.FirstOrDefault(b => b.ID == EditedTransaction.AccountID).isLocked)
            {
                OnMessageApplication("A számla lezárva");
                return;
            }

            if (BankAccounts.FirstOrDefault(b => b.ID == EditedTransaction.AccountID).Balance < EditedTransaction.TransactionValue)
            {
                OnMessageApplication("A tranzakció összege nem haladhatja meg az egyenleget!");
                return;
            }

            EditedTransaction.Created         = DateTime.Now;
            EditedTransaction.TransactionType = "Kivétel";
            Transactions.Add(EditedTransaction);
            SelectedTransaction = EditedTransaction;

            _model.TakeOut(EditedTransaction);

            EditedTransaction = null;

            OnTakeOutFinished();
        }
Exemple #2
0
        private void SaveAddIn()
        {
            // ellenőrzések
            if (String.IsNullOrEmpty(EditedTransaction.TransactionValue.ToString()))
            {
                OnMessageApplication("A mező üres");
                return;
            }

            if (BankAccounts.FirstOrDefault(b => b.ID == EditedTransaction.AccountID).isLocked)
            {
                OnMessageApplication("A számla lezárva");
                return;
            }
            EditedTransaction.Created         = DateTime.Now;
            EditedTransaction.TransactionType = "Betét";
            Transactions.Add(EditedTransaction);
            SelectedTransaction = EditedTransaction;

            _model.AddIn(EditedTransaction);

            EditedTransaction = null;

            OnAddInFinished();
        }
Exemple #3
0
        private void Model_BankAccountChanged(object sender, BankAccountsEventArgs e)
        {
            Int32 index = BankAccounts.IndexOf(BankAccounts.FirstOrDefault(bankacc => bankacc.ID == e.BankAccountsId));

            BankAccounts.RemoveAt(index);
            BankAccounts.Insert(index, _model.BankAccounts[index]);

            SelectedBankAccount = BankAccounts[index];
        }
        public BankAccountPickerVM(MainWindowVM mainWindowVM, bool selectFirstBankAcct)
        {
            _main = mainWindowVM;
            _dir  = _main.AppArgs;

            BankAccounts.SetItems
                (_dir.MarketState.BankAccounts.GetAll());

            if (selectFirstBankAcct)
            {
                SelectedBankAccount = BankAccounts.FirstOrDefault();
            }
        }
Exemple #5
0
        public IBankAccount GetBankAccount(long BankAccountK)
        {
            IBankAccount account;

            if (BankAccounts == null)
            {
                return(null);
            }

            lock (BankAccounts) {
                account = BankAccounts.FirstOrDefault(i => i.BankAccountK == BankAccountK);
            }

            return(account);
        }
 /// <summary>
 /// Returns a bank account by it's key.
 /// </summary>
 public static XBankAccount GetBankAccount(string BankAccountK)
 {
     lock (__staticLock) {
         Economy.EconomyPlayer matchingAccount = SEconomyPlugin.EconomyPlayers.Where(i => i.BankAccount != null).FirstOrDefault(i => i.BankAccount.BankAccountK != null && i.BankAccount.BankAccountK == BankAccountK);
         //if the player is logged in return the logged in bank account reference
         if (matchingAccount != null)
         {
             return(matchingAccount.BankAccount);
         }
         else
         {
             lock (XmlJournal) {
                 return(BankAccounts.FirstOrDefault(i => i.BankAccountK == BankAccountK));
             }
         }
     }
 }
Exemple #7
0
        private void SaveTran()
        {
            if (String.IsNullOrEmpty(EditedTransaction.TransactionValue.ToString()))
            {
                OnMessageApplication("Az összeg mező üres");
                return;
            }
            if (EditedTransaction.AccountNumberTo == null)
            {
                OnMessageApplication("A cél számlaszám üres");
                return;
            }
            if (EditedTransaction.ReceiverName == null)
            {
                OnMessageApplication("A fogadó neve üres");
                return;
            }

            if (BankAccounts.FirstOrDefault(b => b.ID == EditedTransaction.AccountID).isLocked)
            {
                OnMessageApplication("A számla lezárva");
                return;
            }

            if (BankAccounts.FirstOrDefault(b => b.ID == EditedTransaction.AccountID).Balance < EditedTransaction.TransactionValue)
            {
                OnMessageApplication("A tranzakció összege nem haladhatja meg az egyenleget!");
                return;
            }

            EditedTransaction.Created         = DateTime.Now;
            EditedTransaction.TransactionType = "Terhelés";
            Transactions.Add(EditedTransaction);
            SelectedTransaction = EditedTransaction;

            _model.Tran(EditedTransaction);

            EditedTransaction = null;

            OnTranFinished();
        }
        private async Task AutoCreateJournalTransaction(PPHBankExpenditureNote model)
        {
            var journalTransactionToPost = new JournalTransaction()
            {
                Date        = model.Date,
                Description = "Bon Terima Unit",
                ReferenceNo = model.No,
                Status      = "POSTED",
                Items       = new List <JournalTransactionItem>()
            };

            int.TryParse(model.BankId, out int bankAccountId);
            var bankAccount = BankAccounts.FirstOrDefault(entity => entity.Id == bankAccountId);

            if (bankAccount == null)
            {
                bankAccount = new BankAccountCOAResult()
                {
                    AccountCOA = "9999.00.00.00"
                };
            }

            int.TryParse(model.IncomeTaxId, out int incomeTaxId);
            var incomeTax = IncomeTaxes.FirstOrDefault(entity => entity.Id == incomeTaxId);

            if (incomeTax == null)
            {
                incomeTax = new IncomeTaxCOAResult()
                {
                    COACodeCredit = "9999.00"
                };
            }

            var journalDebitItems  = new List <JournalTransactionItem>();
            var journalCreditItems = new List <JournalTransactionItem>();

            journalCreditItems.Add(new JournalTransactionItem()
            {
                COA = new COA()
                {
                    Code = bankAccount.AccountCOA
                },
                Credit = (decimal)model.TotalIncomeTax
            });

            var purchasingDocumentExpeditionIds = model.Items.Select(item => item.PurchasingDocumentExpeditionId).ToList();
            var purchasingDocumentExpeditions   = await dbContext.PurchasingDocumentExpeditions.Include(entity => entity.Items).Where(entity => purchasingDocumentExpeditionIds.Contains(entity.Id)).ToListAsync();

            foreach (var item in model.Items)
            {
                var purchasingDocumentExpedition = purchasingDocumentExpeditions.FirstOrDefault(entity => entity.Id == item.PurchasingDocumentExpeditionId);
                var division = Divisions.FirstOrDefault(entity => entity.Code == purchasingDocumentExpedition.DivisionCode);
                if (division == null)
                {
                    division = new IdCOAResult()
                    {
                        COACode = "0"
                    };
                }

                journalDebitItems.Add(new JournalTransactionItem()
                {
                    COA = new COA()
                    {
                        Code = $"{incomeTax.COACodeCredit}.{division.COACode}.00"
                    },
                    Debit = (decimal)purchasingDocumentExpedition.IncomeTax
                });
            }

            journalDebitItems = journalDebitItems.GroupBy(grouping => grouping.COA.Code).Select(s => new JournalTransactionItem()
            {
                COA = new COA()
                {
                    Code = s.Key
                },
                Debit  = s.Sum(sum => Math.Round(sum.Debit.GetValueOrDefault(), 4)),
                Credit = 0,
                //Remark = string.Join("\n", s.Select(grouped => grouped.Remark).ToList())
            }).ToList();
            journalTransactionToPost.Items.AddRange(journalDebitItems);

            journalCreditItems = journalCreditItems.GroupBy(grouping => grouping.COA.Code).Select(s => new JournalTransactionItem()
            {
                COA = new COA()
                {
                    Code = s.Key
                },
                Debit  = 0,
                Credit = s.Sum(sum => Math.Round(sum.Credit.GetValueOrDefault(), 4)),
                //Remark = string.Join("\n", s.Select(grouped => grouped.Remark).ToList())
            }).ToList();
            journalTransactionToPost.Items.AddRange(journalCreditItems);

            if (journalTransactionToPost.Items.Any(item => item.COA.Code.Split(".").FirstOrDefault().Equals("9999")))
            {
                journalTransactionToPost.Status = "DRAFT";
            }

            string journalTransactionUri = "journal-transactions";
            var    httpClient            = (IHttpClientService)_serviceProvider.GetService(typeof(IHttpClientService));
            var    response = await httpClient.PostAsync($"{APIEndpoint.Finance}{journalTransactionUri}", new StringContent(JsonConvert.SerializeObject(journalTransactionToPost).ToString(), Encoding.UTF8, General.JsonMediaType));

            response.EnsureSuccessStatusCode();
        }
Exemple #9
0
        //
        ///
        ////
        /////System menu for an account
        static void SystemTray(BankAccount account, BankAccounts accounts, List<Log> eventLog)
        {
            Clear();
            WriteLine("Welcome back " + account.Name + "! Available options: ");
            bool valid = true;
            while (valid)
            {
                WriteLine("1. Transfer money to other account");
                WriteLine("2. Show your credentials");
                WriteLine("3. Delete account");
                WriteLine("4.Exit \n What would you like to do?");
                switch (ReadInt())
                {
                    case 1:
                        if (account != null && account.money > 0)
                        {
                            WriteLine("To what ID do you want to send the money to? ");
                            WriteLine(" ----------------------------------- \n ID List for clarification:");
                            foreach (BankAccount acc in accounts)
                            {
                                WriteLine(acc.id + "\n ---------");
                            }
                            string id = ReadLoginInfo("id");
                            WriteLine("How much money do you want to transfer? ");
                            int tempMoney = int.Parse(ReadLine());
                            double money = tempMoney;                                                                       //DATA WIDENING
                            if (money < account.money)
                            {
                                var found = accounts.FirstOrDefault(c => c.id == id);                                      //LINQ METHOD
                                /* var found = from foundId in accounts
                                   where foundId.id==id
                                   select foundId;*/
                                if (found != null)
                                {
                                    WriteLine("ID found, money transfered.");
                                    account.money = account.money - money;
                                    found.money = found.money + money;
                                    eventLog.Add(new Log { id = account.id, debugTime = DateTime.Now, debug = "Transfered money to other account" });
                                }
                            } else
                            {
                                WriteLine("You don't have that much money.");
                            }
                        }
                        else
                        {
                            WriteLine("You don't have any money to send!");
                        }
                        break;
                    case 2:
                        if (account != null)
                        {
                            Clear();
                            WriteLine("Name: {0}", account.Name);
                            WriteLine("Surname: {0}", account.Surname);
                            WriteLine("Birth date: {0}", account.year);
                            WriteLine("Money: {0}", account.money);
                            eventLog.Add(new Log { id = account.id, debugTime = DateTime.Now, debug = "Showed the credentials of an account" });
                        } else
                        {
                            WriteLine("There is no such account.");
                        }
                        break;
                    case 3:
                        if (account != null && (PermissionTypes.Delete & account.permissions) == PermissionTypes.Delete)
                        {
                            WriteLine("Do you really want to delete this account? Y/N");
                            string temp = ReadLine();
                            switch (temp)
                            {
                                case "Y":
                                    var deleteThis = accounts.SingleOrDefault(c => c.id == account.id);
                                    if (deleteThis != null)
                                    {
                                        eventLog.Add(new Log { id = account.id, debugTime = DateTime.Now, debug = "Deleted account" });
                                        accounts.Remove(acc : deleteThis);                  //NAMED ARGUMENT
                                        account = null;
                                        WriteLine("Deleted successfully!");
                                    }
                                    break;
                                case "N":
                                    Clear();
                                    WriteLine("Account is not deleted.");
                                    break;
                            }
                        }
                        else
                        {
                            WriteLine("You do not have permission to delete account!");
                            Read();
                            Clear();
                        }
                        break;
                    case 4:
                        if(account != null)
                        {
                            eventLog.Add(new Log { id = account.id, debugTime = DateTime.Now, debug = "Logged off" });
                        }

                        valid = false;
                        Clear();
                        break;
                    default:
                        WriteLine("Wrong input!");
                        Read();
                        Clear();
                        break;
                }
            }            
        }
 /// <summary>
 /// Returns an XBankAccount by the UserAccountName
 /// </summary>
 public static XBankAccount GetBankAccountByName(string UserAccountName)
 {
     lock (__staticLock) {
         return(BankAccounts.FirstOrDefault(i => i.UserAccountName == UserAccountName));
     }
 }