Интерфейс ITotalDriver

DevBookmark_Scripts Скрипты драйверов итога наследуются от базового класса, указанного в свойстве Base class. Все базовые классы драйверов итоговреализуют интерфейс ITotalDriver (из пространства имен Ultima.Totals.Calculation).

Интерфейс ITotalDriver содержит следующие методы и свойства:

TotalID типа long — возвращает идентификатор итога;

LimitDateTime типа DateTime — возвращает дату, по которую рассчитан текущий итог;

LimitDocumentID типа long — возвращает идентификатор документа, по который рассчитан текущий итог;

DocumentBalance типа decimal — возвращает значение баланса текущего документа (сумму всех значений переменной Сумма его транзакций);

BeginCalculation(ITotalCalculator transactionProcessor) — вызывается в начале процесса расчета транзакций;

transactionProcessor — экземпляр обработчика транзакций, используемый для сообщения об ошибках вычисления и т.п.;

EndCalculation() — вызывается в конце процесса расчета транзакций;

BeginDocument(DateTime transactionDate, long docId) — вызывается в начале расчета каждого документа;

transactionDate — дата транзакции;

docId — идентификатор документа;

EndDocument(DateTime transactionDate, long docId) — вызывается в конце расчета каждого документа;

transactionDate — дата транзакции;

docId — идентификатор документа;

BeginTransaction() — вызывается в начале расчета каждой транзакции;

EndTransaction() — вызывается в конце расчета каждой транзакции;

LoadTotalState(ITransactionLoader loader, DateTime limitDate, long limitDocId) — загружает статус итога на указанную дату (или дату транзакции указанного документа:

loader — загрузчик транзакций;

limitDate — дата транзакции, на которую будет загружен статус итога;

limitDocId — идентификатор документа, на дату транзакции которого будет загружен статус итога;

AddCompleteTransaction(DetailedTransactionValue transaction) — добавляет транзакцию в список полных транзакций итога:

transaction — транзакция для добавления;

CanCalculateOutcome(TransactionValue outcome) — сообщает, может ли текущий драйвер самостоятельно рассчитать указанную расходную транзакцию до полной:

outcome — расходная транзакция;

CalculateOutcomes(TransactionValue outcome, IEnumerable<TransactionValue> incomes) — рассчитывает расходные транзакции до полных:

outcome — расходная транзакция для расчета;

incomes — рассчитываемая приходная транзакция;

CalculateIncomes(TransactionValue income, IEnumerable<TransactionValue> outcomes) — рассчитывает приходные транзакции до полных:

income — приходная транзакция для расчета;

outcomes — рассчитываемая расходная  транзакция;

DetailedTransactions типа ICollection<DetailedTransactionValue> — возвращает рассчитанную детализированную транзакцию готовую для записи в базу данных.