/// <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("--"); }