示例#1
0
        //internal static void MoveFocusToNextControlOnEnter(object sender, KeyEventArgs e) {
        //    if (e.Key != Key.Enter) return;
        //    var tRequest = new TraversalRequest(FocusNavigationDirection.Next);
        //    var keyboardFocus = Keyboard.FocusedElement as UIElement;

        //    if (keyboardFocus != null) {
        //        keyboardFocus.MoveFocus(tRequest);
        //    }
        //    e.Handled = true;
        //}

        internal static Nfmb SearchMember()
        {
            var members     = Nfmb.GetList();
            var searchItems =
                members.Select(
                    member =>
                    new SearchItem(member.ID, member.MemberName)
            {
                ItemCode = member.MemberCode
            }).
                ToList();

            var searchByCodeWindow = new SearchByCodeWindow(searchItems);

            searchByCodeWindow.ShowDialog();


            if (searchByCodeWindow.DialogResult == false)
            {
                return(null);
            }

            var searchItem = new Nfmb();

            searchItem.Find(searchByCodeWindow.SelectedItem.ItemId);
            return(searchItem);
        }
示例#2
0
        private Result PostServiceFee()
        {
            // post service fee credit side
            var member      = Nfmb.FindByCode(_accountDetail.MemberCode);
            var accountCode = GlobalSettings.CodeOfServiceFee;

            if (string.IsNullOrWhiteSpace(accountCode))
            {
                return(new Result(false, GenerateCodeOfAccountNotSetMessage("Service Fee")));
            }
            var account = Account.FindByCode(accountCode);
            var cv      = new CashVoucher
            {
                MemberCode   = member.MemberCode,
                MemberName   = member.MemberName,
                AccountCode  = account.AccountCode,
                AccountTitle = account.AccountTitle,
                Credit       = _accountDetail.TimeDepositDetails.CalculateServiceFee(_voucherDocument.VoucherDate),
                VoucherDate  = _voucherDocument.VoucherDate,
                VoucherNo    = _voucherDocument.VoucherNo,
            };

            var postResult = cv.Create();

            if (!postResult.Success)
            {
                Rollback();
            }
            return(postResult);
        }
示例#3
0
        private Result PostTimeDepositEndBalance()
        {
            // post time desposit end balance debit side
            var member    = Nfmb.FindByCode(_accountDetail.MemberCode);
            var account   = Account.FindByCode(_accountDetail.AccountCode);
            var tdDetails = new TimeDepositDetails {
                CertificateNo = _accountDetail.TimeDepositDetails.CertificateNo
            };
            var cv = new CashVoucher
            {
                MemberCode         = member.MemberCode,
                MemberName         = member.MemberName,
                AccountCode        = account.AccountCode,
                AccountTitle       = account.AccountTitle,
                Debit              = _accountDetail.EndingBalance,
                VoucherDate        = _voucherDocument.VoucherDate,
                VoucherNo          = _voucherDocument.VoucherNo,
                TimeDepositDetails = tdDetails,
            };

            var postResult = cv.Create();

            if (!postResult.Success)
            {
                Rollback();
            }
            return(postResult);
        }
示例#4
0
        public GoNegosyoView(Nfmb member)
        {
            InitializeComponent();
            _member = member;

            if (MainController.LoggedUser.TransactionDate != GlobalSettings.DateOfOpenTransaction)
            {
                MessageWindow.ShowAlertMessage("Cannot create transactions using current date settings.");
                btnDetails.IsEnabled = btnPost.IsEnabled = false;
                return;
            }

            var code = GlobalSettings.CodeOfGoNegosyo;

            if (string.IsNullOrEmpty(code))
            {
                MessageWindow.ShowAlertMessage("Go Negosyo code not set!");
                btnDetails.IsEnabled = btnPost.IsEnabled = false;
                return;
            }

            btnPost.Click    += (sender, args) => Post();
            btnDetails.Click += (sender, args) => ShowDetails();

            _loanProduct = LoanProduct.GetList().First(a => a.ProductCode == code);

            // initialize cash voucher entry for go negosyo
            _cashVoucher = new CashVoucher
            {
                VoucherNo = Voucher.LastDocumentNo(VoucherTypes.CV) + 1,
            };

            DataContext = _cashVoucher;
        }
示例#5
0
        private Result PostCashOnHand()
        {
            // post cash on hand credit side
            var member      = Nfmb.FindByCode(_accountDetail.MemberCode);
            var accountCode = GlobalSettings.CodeOfCashOnHand;

            if (string.IsNullOrWhiteSpace(accountCode))
            {
                return(new Result(false, GenerateCodeOfAccountNotSetMessage("Cash on Hand")));
            }
            var account = Account.FindByCode(accountCode);
            var amount  = _accountDetail.EndingBalance +
                          _accountDetail.TimeDepositDetails.CalculateInterestEarned(_voucherDocument.VoucherDate) -
                          _accountDetail.TimeDepositDetails.CalculateServiceFee(_voucherDocument.VoucherDate);
            var cv = new CashVoucher
            {
                MemberCode    = member.MemberCode,
                MemberName    = member.MemberName,
                AccountCode   = account.AccountCode,
                AccountTitle  = account.AccountTitle,
                Credit        = amount,
                VoucherDate   = _voucherDocument.VoucherDate,
                VoucherNo     = _voucherDocument.VoucherNo,
                Explanation   = "Withdrawal of Time Deposit",
                AmountInWords = Converter.AmountToWords(amount),
            };

            var postResult = cv.Create();

            if (!postResult.Success)
            {
                Rollback();
            }
            return(postResult);
        }
示例#6
0
 public PostTimeDepositView(Nfmb member, TimeDepositViewModel viewModel) : this()
 {
     _officialReceipt           = new OfficialReceipt();
     _member                    = member;
     _viewModel                 = viewModel;
     _officialReceipt.VoucherNo = Voucher.LastDocumentNo(VoucherTypes.OR) + 1;
     DataContext                = _officialReceipt;
 }
 private void Create(object sender, RoutedEventArgs e)
 {
     _member = new Nfmb {
         ContactInformation = new Contact()
     };
     RefreshDisplay();
     ShowValidateMemberWindow(this, null);
 }
        public SpecialLoanApplicationView(Nfmb member)
        {
            InitializeComponent();
            _member = member;

            btnSalaryAdvances.Click += (sender, args) => ShowSalaryAdvancesView();
            btnGoNegosyo.Click      += (sender, args) => ShowGoNegosyoView();
        }
        private void SearchMember()
        {
            Nfmb result = MainController.SearchMember();

            if (result != null && result.MemberCode != null)
            {
                if (result.MemberCode.Length >= 4)
                {
                    _viewModel.Member = result;
                    RefreshMemberInformation();
                    RefreshAccountInformation();
                }
            }
        }
示例#10
0
        public PostSavingsDepositView(Nfmb member, Account savingsAccount) : this()
        {
            _officialReceipt           = new OfficialReceipt();
            _officialReceipt.VoucherNo = Voucher.LastDocumentNo(VoucherTypes.OR) + 1;

            _officialReceipt.MemberCode = member.MemberCode;
            _officialReceipt.MemberName = member.MemberName;

            _officialReceipt.AccountCode  = savingsAccount.AccountCode;
            _officialReceipt.AccountTitle = savingsAccount.AccountTitle;

            _officialReceipt.VoucherDate = MainController.LoggedUser.TransactionDate;

            DataContext = _officialReceipt;
        }
示例#11
0
        public static Result ReBalanceWithdrawals(Voucher voucher, decimal totalWithdrawals)
        {
            var sqlBuilder = new StringBuilder();

            sqlBuilder.AppendLine("SELECT *");
            sqlBuilder.AppendLine("FROM cv");
            sqlBuilder.AppendLine("WHERE DOC_NUM = ?DOC_NUM");
            sqlBuilder.AppendLine("AND CREDIT > 0");
            sqlBuilder.AppendLine("LIMIT 1");
            var       sqlParam  = new SqlParameter("?DOC_NUM", voucher.VoucherNo);
            DataTable dataTable = DatabaseController.ExecuteSelectQuery(sqlBuilder, sqlParam);

            var cv = new CashVoucher();

            foreach (DataRow dataRow in dataTable.Rows)
            {
                cv.SetPropertiesFromDataRow(dataRow);
            }

            cv.Credit        = totalWithdrawals;
            cv.Amount        = totalWithdrawals;
            cv.AmountInWords = Utilities.Converter.AmountToWords(totalWithdrawals);

            if (cv.ID == 0)
            {
                var company = Nfmb.FindByCode(GlobalSettings.CodeOfCompany);
                if (company == null || company.ID == 0)
                {
                    return(new Result(false, "Company Code is not set. Please consult System Administrator"));
                }
                cv.MemberCode = company.MemberCode;
                cv.MemberName = company.MemberName;

                var coh = Account.FindByCode(GlobalSettings.CodeOfCashOnHand);
                cv.AccountCode  = coh.AccountCode;
                cv.AccountTitle = coh.AccountTitle;

                cv.VoucherNo   = voucher.VoucherNo;
                cv.VoucherDate = voucher.VoucherDate;
                cv.VoucherType = cv.VoucherType;

                cv.Explanation = "Daily partial withdrawal from Savings Deposit";
                return(cv.Create());
            }

            return(cv.Update());
        }
示例#12
0
        private void FindComaker3ButtonClick(object sender, RoutedEventArgs e)
        {
            Nfmb member = MainController.SearchMember();

            if (member == null)
            {
                _loanDetails.CoMakers[2] = new CoMaker();
                CoMakerSearchBox3.Text   = "";
            }
            else
            {
                _loanDetails.CoMakers[2] = new CoMaker {
                    MemberCode = member.MemberCode, MemberName = member.MemberName
                };
                CoMakerSearchBox3.Text = _loanDetails.CoMakers[2].ToString();
            }
        }
        public MemberInformationWindow(string memberCode)
        {
            InitializeComponent();
            _member = Nfmb.FindByCode(memberCode);

            InitializeLookupControls();
            DataContext = _member;
            TabItemContactInformation.DataContext = _member.ContactInformation;

            _member.ContactInformation = Contact.WhereMemberCodeIs(memberCode);

            imgPhoto.Source     = ImageTool.CreateImageSourceFromBytes(_member.ContactInformation.Picture);
            imgSignature.Source = ImageTool.CreateImageSourceFromBytes(_member.ContactInformation.Signature);

            CrudButtons.Visibility      = Visibility.Hidden;
            stbMemberNameCode.IsEnabled = false;
        }
示例#14
0
        private static Result ValidateMemberName(string memberCode, string memberName)
        {
            if (string.IsNullOrEmpty(memberCode) || string.IsNullOrEmpty(memberName))
            {
                return(new Result(false, "Member Code or Member Name must not be empty."));
            }

            if (_dataManipulationType == ModelController.DataManipulationType.Create)
            {
                Nfmb foundMember = Nfmb.FindByCode(memberCode);
                if (foundMember != null && foundMember.ID > 0)
                {
                    return(new Result(false, "Member Code already exists."));
                }

                foundMember = Nfmb.FindByName(memberName);

                if (foundMember != null && foundMember.ID > 0)
                {
                    if (foundMember.ID != 0)
                    {
                        return(new Result(false, "Member Name already exists."));
                    }
                }
            }
            else
            {
                Nfmb foundMember = Nfmb.FindByName(memberName);
                if (foundMember != null && foundMember.ID > 0)
                {
                    if (foundMember.MemberCode != memberCode)
                    {
                        return(new Result(false, "Member Name already exists."));
                    }
                }
            }

            return(new Result(true, "ValidateMemberName successful."));
        }
        private void Read(object sender, RoutedEventArgs e)
        {
            List <Nfmb>       members     = Nfmb.GetList();
            List <SearchItem> searchItems =
                members.Select(
                    member =>
                    new SearchItem(member.ID, member.MemberName)
            {
                ItemCode = member.MemberCode
            }).ToList();

            var searchByCodeWindow = new SearchByCodeWindow(searchItems);

            searchByCodeWindow.ShowDialog();
            if (searchByCodeWindow.DialogResult != true)
            {
                return;
            }

            _member.Find(searchByCodeWindow.SelectedItem.ItemId);
            RefreshDisplay();
        }
        private void Delete(object sender, RoutedEventArgs e)
        {
            if (_member == null)
            {
                return;
            }
            if (_member.ID <= 0)
            {
                return;
            }

            const string confirmMessage = "You are about to delete current Member information. Do you want to proceed?";

            if (MessageWindow.ShowConfirmMessage(confirmMessage) != MessageBoxResult.Yes)
            {
                return;
            }

            _member.Destroy();
            MessageWindow.ShowNotifyMessage("Member information deleted!");
            DataContext = _member = new Nfmb();
        }
示例#17
0
        private void CurrentItemOnPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            _hasModified = true;
            var currentItem = (CashVoucher)sender;

            switch (e.PropertyName)
            {
            case "MemberCode":
                var nfmb = Nfmb.FindByCode(currentItem.MemberCode);
                currentItem.MemberName = nfmb.MemberName;
                break;

            case "AccountCode":
                var account = Account.FindByCode(currentItem.AccountCode);
                currentItem.AccountTitle = account.AccountTitle;
                break;

            case "Debit":
            case "Credit":
                UpdateTotalDebitAndTotalCredit();
                break;
            }
        }
示例#18
0
        private Result PostInterestExpense()
        {
            // post time desposit end balance debit side
            var interestEarned = _accountDetail.TimeDepositDetails.CalculateInterestEarned(_voucherDocument.VoucherDate);

            if (interestEarned == 0)
            {
                return(new Result(true, "No interest earned."));
            }

            var member      = Nfmb.FindByCode(_accountDetail.MemberCode);
            var accountCode = GlobalSettings.CodeOfInterestExpenseOnTimeDeposit;

            if (string.IsNullOrWhiteSpace(accountCode))
            {
                return(new Result(false, GenerateCodeOfAccountNotSetMessage("Interest Expense On Time Deposit")));
            }
            var account = Account.FindByCode(accountCode);
            var cv      = new CashVoucher
            {
                MemberCode   = member.MemberCode,
                MemberName   = member.MemberName,
                AccountCode  = account.AccountCode,
                AccountTitle = account.AccountTitle,
                Debit        = interestEarned,
                VoucherDate  = _voucherDocument.VoucherDate,
                VoucherNo    = _voucherDocument.VoucherNo,
            };

            var postResult = cv.Create();

            if (!postResult.Success)
            {
                Rollback();
            }
            return(postResult);
        }
示例#19
0
        private Result PostTimeDepositInterestEarned()
        {
            // post time desposit interest earned credit side
            var member  = Nfmb.FindByCode(_accountDetail.MemberCode);
            var account = Account.FindByCode(_accountDetail.AccountCode);

            var previousDetail = _accountDetail.TimeDepositDetails;
            var asOf           = GlobalSettings.DateOfOpenTransaction;
            var interestEarned = previousDetail.CalculateInterestEarned(asOf) - previousDetail.CalculateServiceFee(asOf);

            var tdDetails = SetNewTimeDepositDetails();

            if (tdDetails == null)
            {
                return(new Result(false, "Time deposit details not set."));
            }
            var jv = new JournalVoucher
            {
                MemberCode         = member.MemberCode,
                MemberName         = member.MemberName,
                AccountCode        = account.AccountCode,
                AccountTitle       = account.AccountTitle,
                Credit             = interestEarned,
                VoucherDate        = _voucherDocument.VoucherDate,
                VoucherNo          = _voucherDocument.VoucherNo,
                TimeDepositDetails = tdDetails,
            };

            var postResult = jv.Create();

            if (!postResult.Success)
            {
                Rollback();
            }
            return(postResult);
        }
示例#20
0
        public static LoanAmortizationHeader GenerateLoanAmortization(
            string codeMember,
            string codeAccount,
            decimal amountLoan,
            int termLoan,
            decimal rateAnnualInterest,
            System.DateTime grantedDate,
            decimal monthlyCapitalBuildUp)
        {
            var schedule = new LoanAmortizationHeader();

            // Member Information
            var member = Nfmb.FindByCode(codeMember);

            schedule.MemberCode    = member.MemberCode;
            schedule.MemberName    = member.MemberName;
            schedule.MemberAddress = member.CompleteAddress();

            // Account Information
            var account = Account.FindByCode(codeAccount);

            schedule.AccountCode  = account.AccountCode;
            schedule.AccountTitle = account.AccountTitle;

            schedule.LoanAmount            = amountLoan;
            schedule.MonthlyCapitalBuildUp = monthlyCapitalBuildUp;
            schedule.AnnualInterestRate    = rateAnnualInterest;
            schedule.LoanTerm         = termLoan;
            schedule.ModeOfPayment    = "Monthly";
            schedule.DateGranted      = grantedDate;
            schedule.DateMaturity     = grantedDate.AddMonths(termLoan);
            schedule.FirstPaymentDate = grantedDate.AddMonths(1);

            var monthlyInterest = System.Math.Round((amountLoan * (schedule.AnnualInterestRate / 12)), 2);
            var monthlyPayment  = System.Math.Round((amountLoan / termLoan), 2);

            schedule.MonthlyAmortization = monthlyPayment + monthlyInterest + monthlyCapitalBuildUp;
            var runningBalance = amountLoan;

            for (int i = 1; i < termLoan; i++)
            {
                var item = new LoanAmortizationDetail();
                item.PaymentDate      = grantedDate.AddMonths(i);
                item.PaymentNo        = i;
                item.BeginningBalance = runningBalance;
                item.Payment          = monthlyPayment;
                item.Interest         = monthlyInterest;
                item.CapitalBuildUp   = schedule.MonthlyCapitalBuildUp;
                item.Amortization     = item.Payment + monthlyInterest + item.CapitalBuildUp;
                item.EndingBalance    = item.BeginningBalance - item.Payment;
                schedule.PaymentSchedules.Add(item);

                runningBalance = item.EndingBalance;
            }

            // Add final payment that, balancing discrepancies in monthly payment and amortization
            var lastpayment = new LoanAmortizationDetail();

            lastpayment.PaymentDate      = grantedDate.AddMonths(termLoan);
            lastpayment.PaymentNo        = termLoan;
            lastpayment.BeginningBalance = runningBalance;
            lastpayment.Payment          = amountLoan - schedule.PaymentSchedules.Sum(payment => payment.Payment);
            lastpayment.Interest         = monthlyInterest;
            lastpayment.CapitalBuildUp   = monthlyCapitalBuildUp;
            lastpayment.Amortization     = lastpayment.Payment + monthlyInterest + lastpayment.CapitalBuildUp;
            lastpayment.EndingBalance    = lastpayment.BeginningBalance - lastpayment.Payment;
            schedule.PaymentSchedules.Add(lastpayment);

            return(schedule);
        }
示例#21
0
        private void MemberCodeTextBoxOnLostFocus(object sender, RoutedEventArgs e)
        {
            var member = Nfmb.WhereMemberCodeIs(MemberCodeTextBox.Text);

            MemberNameTextBox.Text = member.MemberName;
        }
        public Result Validate()
        {
            if (AmountAllocated <= 0m)
            {
                return(new Result(false, "Amount allocated is not valid."));
            }

            if (MaintainingBalance <= 0m)
            {
                return(new Result(false, "Maintaining Balance is not valid."));
            }

            if (JournalVoucherNumber <= 0)
            {
                return(new Result(false, "Journal Voucher Number is not valid."));
            }

            if (string.IsNullOrEmpty(ShareCapitalCode))
            {
                return(new Result(false, "Share Capital Code is required."));
            }

            if (string.IsNullOrEmpty(InterestOnShareCapitalPayableCode))
            {
                return(new Result(false, "Interest on Share Capital Payable Code is required."));
            }

            if (string.IsNullOrEmpty(CooperativeCode))
            {
                return(new Result(false, "Cooperative Code is required."));
            }

            // with database related validation
            var collection = JournalVoucher.WhereDocumentNumberIs(JournalVoucherNumber);

            if (collection.Any())
            {
                return(new Result(false, "Journal Voucher Number already in use."));
            }

            _shareCapitalAccount = Account.FindByCode(ShareCapitalCode);
            if (string.IsNullOrEmpty(_shareCapitalAccount.AccountTitle))
            {
                return(new Result(false, "Share Capital Code is not valid or does not exist."));
            }

            _interestOnShareCapitalAccount = Account.FindByCode(InterestOnShareCapitalPayableCode);
            if (string.IsNullOrEmpty(_interestOnShareCapitalAccount.AccountTitle))
            {
                return(new Result(false, "Interest on Share Capital Code is not valid or does not exist."));
            }

            _cooperative = Nfmb.FindByCode(CooperativeCode);
            if (string.IsNullOrEmpty(_cooperative.MemberName))
            {
                return(new Result(false, "Cooperatice Code is not valid or does not exist."));
            }

            // after all the above validation succeeds then...
            return(new Result(true, "Valid."));
        }
示例#23
0
        private void PostButtonOnClick(object sender, RoutedEventArgs e)
        {
            var result = _withdrawal.Validate();

            if (!result.Success)
            {
                MessageWindow.ShowAlertMessage(result.Message);
                return;
            }

            #region --- Withdrawal Credit Side ---

            var voucher = new Voucher
            {
                VoucherDate = _withdrawal.WithdrawalSettings.TransactionDate,
                VoucherNo   = _withdrawal.WithdrawalSettings.WithdrawalVoucherNo,
                VoucherType = VoucherTypes.CV
            };
            var totalWithdrawals = Withdrawal.TotalWithdrawals(voucher.VoucherNo) + _withdrawal.WithdrawalAmount;
            result = Withdrawal.ReBalanceWithdrawals(voucher, totalWithdrawals);
            if (!result.Success)
            {
                MessageWindow.ShowAlertMessage(result.Message);
                return;
            }

            #endregion

            #region --- Withdrawal Debit Side ---

            var cv     = new CashVoucher();
            var member = Nfmb.FindByCode(_withdrawal.AccountInfo.MemberCode);
            cv.MemberCode = member.MemberCode;
            cv.MemberName = member.MemberName;
            var account = Account.FindByCode(_withdrawal.AccountInfo.AccountCode);
            cv.AccountCode  = account.AccountCode;
            cv.AccountTitle = account.AccountTitle;

            cv.Debit = _withdrawal.WithdrawalAmount;

            cv.VoucherDate = voucher.VoucherDate;
            cv.VoucherNo   = voucher.VoucherNo;
            cv.VoucherType = voucher.VoucherType;

            cv.WithdrawalSlipNo = _withdrawal.WithdrawalSlipNo;

            cv.Create();

            #endregion

            #region --- Voucher Log ---

            var voucherLog = new VoucherLog();
            voucherLog.Find("CV", cv.VoucherNo);
            voucherLog.Date     = cv.VoucherDate;
            voucherLog.Initials = MainController.LoggedUser.Initials;
            voucherLog.Save();

            #endregion

            var validationBuilder = new StringBuilder();
            validationBuilder.AppendFormat("{0} {1} {2} {3} {4} {5:yyyy-MM-dd hh:mm:ss} {6}",
                                           cv.MemberCode,
                                           cv.AccountCode,
                                           cv.VoucherNo,
                                           cv.WithdrawalSlipNo,
                                           cv.Debit,
                                           DateTime.Now,
                                           MainController.LoggedUser.Initials);

            if (MessageWindow.ShowConfirmMessage("Print withdrawal validation?") == MessageBoxResult.Yes)
            {
                ReportController.PrintWitdrawalValidation(cv);
            }

            DialogResult = true;
            Close();
        }
        private void btnPost_Click(object sender, EventArgs e)
        {
            var collection = JournalVoucher.WhereDocumentNumberIs(_journalVoucher.VoucherNo);

            if (collection.Count > 0)
            {
                MessageWindow.ShowAlertMessage("JV No. already in use.");
                return;
            }
            try
            {
                btnPost.Content = "Posting, please wait...";

                JournalVoucher jv;
                foreach (var item in _viewModel.Collection)
                {
                    jv = new JournalVoucher();

                    jv.MemberCode   = item.MemberCode;
                    jv.MemberName   = item.MemberName;
                    jv.AccountCode  = item.AccountCode;
                    jv.AccountTitle = item.AccountTitle;
                    jv.Credit       = item.Credit;

                    jv.VoucherDate = _journalVoucher.VoucherDate;
                    jv.VoucherNo   = _journalVoucher.VoucherNo;
                    jv.VoucherType = VoucherTypes.JV;

                    jv.IsPosted = true;
                    jv.Create();
                }

                // closing
                jv = new JournalVoucher();

                var coop = Nfmb.FindByCode(GlobalSettings.CodeOfCompany);
                jv.MemberCode = coop.MemberCode;
                jv.MemberName = coop.MemberName;
                var intExpense = _viewModel.InterestExpenseOnSavingsDepositAccount;
                jv.AccountCode  = intExpense.AccountCode;
                jv.AccountTitle = intExpense.AccountTitle;
                jv.Debit        = _viewModel.Collection.Sum(voucher => voucher.Credit);

                jv.VoucherDate = _journalVoucher.VoucherDate;
                jv.VoucherNo   = _journalVoucher.VoucherNo;
                jv.VoucherType = VoucherTypes.JV;

                jv.Explanation = "Savings Deposit interest posting";

                jv.IsPosted = true;
                jv.Create();

                #region --- Voucher Log ---

                var voucherLog = new VoucherLog();
                voucherLog.Find("JV", _journalVoucher.VoucherNo);
                voucherLog.Date     = _journalVoucher.VoucherDate;
                voucherLog.Initials = MainController.LoggedUser.Initials;
                voucherLog.Save();

                #endregion

                btnPost.Content = string.Format("Posting Complete");
                MessageWindow.ShowNotifyMessage("Interest on Savings Deposit succesfully posted!");
                DialogResult = true;
                Close();
            }
            catch (Exception exception)
            {
                MessageWindow.ShowAlertMessage(exception.Message);
            }
        }
示例#25
0
 private void FindBorrowerButtonClick(object sender, RoutedEventArgs e)
 {
     _borrower = MainController.SearchMember();
     RefreshBorrowerInformation();
 }
示例#26
0
 public LoanAmortizationWindow(Nfmb member)
     : this()
 {
     _member = member;
 }
示例#27
0
 public LoanApplicationWindow(Nfmb member)
     : this()
 {
     _borrower = member;
     RefreshBorrowerInformation();
 }
示例#28
0
 public virtual void SetMember(Nfmb member)
 {
     MemberCode = member.MemberCode;
     MemberName = member.MemberName;
 }
示例#29
0
 public SalaryAdvanceView(Nfmb member) : this()
 {
     _member = member;
 }
示例#30
0
 private void InitializeData()
 {
     _loanAmortization = new LoanAmortization();
     _loanProducts     = LoanProduct.GetList();
     _member           = new Nfmb();
 }