Публикация
Описание и решение одного маленького но неприятного бага
3 августа 2011 20:09
Итак моя первая запись!
Недавно обнаружился маленький бажок при попытке вводить финансовые операции для проекта итоговая сумма рассчитывалась неправильно: не пересчитывалась сумма введённая в отличной от базовой валюте.
Решение было любезно предоставленно службой поддержки. Цитирую:
1) В запросе sq_GetProjectCashflow заменить выбор колонки Amount на BasicAmount:
2) Отредактировать следующим образом функцию CalculateProjectCashflow скрипта
(Amoun переделать в BasicAmount)
function CalculateProjectCashflow(ProjectID, CashflowType, IsEstimated) {
var Cashflow;
var Dataset = GetSingleItemByCode('ds_GetProjectCashflow', 'CalculateProjectCashflow');
var Parameters = Dataset.SelectQuery.Parameters;
ApplyDatasetFilter(Dataset, 'ProjectID', ProjectID, true);
Parameters.ItemsByName('CashflowType').Value = CashflowType;
if (IsEstimated) {
Parameters.ItemsByName('StatusID').Value = CashflowStatusBudget;
} else {
Parameters.ItemsByName('StatusID').Value = CashflowStatusCompleted;
}
Dataset.Open();
try {
Cashflow = Dataset.ValAsFloat('BasicAmount');
} finally {
Dataset.Close();
ApplyDatasetFilter(Dataset, 'ProjectID', null, false);
}
return Cashflow;
}
var Cashflow;
var Dataset = GetSingleItemByCode('ds_GetProjectCashflow', 'CalculateProjectCashflow');
var Parameters = Dataset.SelectQuery.Parameters;
ApplyDatasetFilter(Dataset, 'ProjectID', ProjectID, true);
Parameters.ItemsByName('CashflowType').Value = CashflowType;
if (IsEstimated) {
Parameters.ItemsByName('StatusID').Value = CashflowStatusBudget;
} else {
Parameters.ItemsByName('StatusID').Value = CashflowStatusCompleted;
}
Dataset.Open();
try {
Cashflow = Dataset.ValAsFloat('BasicAmount');
} finally {
Dataset.Close();
ApplyDatasetFilter(Dataset, 'ProjectID', null, false);
}
return Cashflow;
}
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать