/// <summary>
        /// Perform Match
        /// </summary>
        /// <param name="ibs">import bank statement line</param>
        /// <returns>Message</returns>
        private String Match(X_I_BankStatement ibs)
        {
            if (_matchers == null || ibs == null || ibs.GetC_Payment_ID() != 0)
            {
                return("--");
            }

            log.Fine("" + ibs);
            BankStatementMatchInfo info = null;

            for (int i = 0; i < _matchers.Length; i++)
            {
                if (_matchers[i].IsMatcherValid())
                {
                    info = _matchers[i].GetMatcher().FindMatch(ibs);
                    if (info != null && info.IsMatched())
                    {
                        if (info.GetC_Payment_ID() > 0)
                        {
                            ibs.SetC_Payment_ID(info.GetC_Payment_ID());
                        }
                        if (info.GetC_Invoice_ID() > 0)
                        {
                            ibs.SetC_Invoice_ID(info.GetC_Invoice_ID());
                        }
                        if (info.GetC_BPartner_ID() > 0)
                        {
                            ibs.SetC_BPartner_ID(info.GetC_BPartner_ID());
                        }
                        ibs.Save();
                        return("OK");
                    }
                }
            }   //	for all matchers
            return("--");
        }
        /// <summary>
        /// Perform Match
        /// </summary>
        /// <param name="bsl">bank statement line</param>
        /// <returns>Message</returns>
        private String Match(MBankStatementLine bsl)
        {
            if (_matchers == null || bsl == null || bsl.GetC_Payment_ID() != 0)
            {
                return("--");
            }

            log.Fine("match - " + bsl);
            BankStatementMatchInfo info = null;

            for (int i = 0; i < _matchers.Length; i++)
            {
                if (_matchers[i].IsMatcherValid())
                {
                    info = _matchers[i].GetMatcher().FindMatch(bsl);
                    if (info != null && info.IsMatched())
                    {
                        if (info.GetC_Payment_ID() > 0)
                        {
                            bsl.SetC_Payment_ID(info.GetC_Payment_ID());
                        }
                        if (info.GetC_Invoice_ID() > 0)
                        {
                            bsl.SetC_Invoice_ID(info.GetC_Invoice_ID());
                        }
                        if (info.GetC_BPartner_ID() > 0)
                        {
                            bsl.SetC_BPartner_ID(info.GetC_BPartner_ID());
                        }
                        bsl.Save();
                        return("OK");
                    }
                }
            }   //	for all matchers
            return("--");
        }