Ilyan
|
27 января 2014 12:48
|
Admin Пишет: Просто убрать галочку "Учитывать историю курсов". А что делать с блоком "Расходы по месяцам" (динамика)?
Там тоже все цифры совершенно неверные.
|
|
|
Admin
|
27 января 2014 12:53
|
Ilyan Пишет: А что делать с блоком "Расходы по месяцам" Убрать галочку "Учитывать историю курсов" :).
|
|
|
Ilyan
|
27 января 2014 13:40
|
Admin Пишет: Убрать галочку "Учитывать историю курсов" :). А, да.. :)
Хотя это как-то неочевидно, что галочка из одного блока влияет на другой. Тем более, что у блока "Расходы по месяцам" есть свой фильтр "Валюта".
И все-таки, нельзя ли учитывать транзакции в валютах без кода? Хотя бы в отчетах в основной валюте: ведь в настройках безкодовых валют дан курс именно к основной валюте, а значит пересчет по курсу самый тривиальный.
|
|
|
Admin
|
27 января 2014 13:44
|
Ilyan Пишет: нельзя ли учитывать транзакции в валютах без кода? А как учитывать историю курсов, если её (истории) для данной валюты нет?
|
|
|
Ilyan
|
27 января 2014 13:46
|
И ещё одна проблема, которую я предвидел ещё вчера: если основная валюта не рубль, то при ежедневном (?) пересчете курсов, изменяются курсы безкодовых валют.
Например, вчера я исправил курс у безкодовой валюты X к основной (ILS) на 1.000000, а сегодня он изменился на 0.995663
Таким образом, валюта X оказывается привязана не к ILS, а к рублю.
|
|
|
Ilyan
|
27 января 2014 13:48
|
Admin Пишет: А как учитывать историю курсов, если её (истории) для данной валюты нет? Давайте для начала (и простоты) предположим, что указанный в настройках курс - это и есть вся история. Т. е. данный курс верен в любой момент времени.
|
|
|
Ilyan
|
27 января 2014 13:55
|
На мой взгляд, настройки валют должны выглядеть следующим образом:
Каждая пользовательская валюта обязана иметь одну из настроек:
1. Код из списка
2. Фиксированный курс (коэффициент) к одной из валют из списка.
* кстати, список было бы неплохо сделать выпадающим.
** курс к рублю у основной валюты - ненужный пережиток прошлого
|
|
|
Admin
|
27 января 2014 13:57
|
Ilyan Пишет: Давайте для начала (и простоты) предположим, что указанный в настройках курс - это и есть вся история Увы, это во-первых не верно, во-вторых - текущая реализация истории курсов изначально предполагала ряд ограничений в своей работе, см. выше в этой теме.
Сделано то, что можно было сделать в текущих обстоятельствах. Галочку можно просто не использовать, если её работа не устраивает.
Насчёт изменения курсов безкодовой валюты - есть такая вещь. Подумаем как исправить.
|
|
|
Ilyan
|
27 января 2014 14:01
|
Этого на 99% хватит даже мне :)
А в будущем было бы неплохо:
1. Расширять список - добавлять истории курсов различных акций, фондов, индексов и т. п.
2. Разрешить создавать собственную историю курсов (вместо фиксированного)
|
|
|
Ilyan
|
27 января 2014 14:14
|
Admin Пишет: Увы, это во-первых не верно Это гораздо более верно, чем исключать транзакции из отчетов.
Большинство моих безкодовых валют имеют курс 1.000000 к шекелю, и это верно в абсолютно любой момент времени (хотя этим валютам я теперь могу просто дать код ILS).
А для "скидочных" валют с изредка изменяющимися курсами тоже гораздо лучше немного пожертвовать точностью старых отчетов, чем вообще не иметь возможности составить хоть один точный отчет.
|
|
|
maskman
|
27 января 2014 22:39
|
Ilyan Пишет: раз уж теперь можно добавить практически любую валюту, добавьте, пожалуйста, EGP (египетский фунт) Поддерживаю.
И спасибо за историю.
|
|
|
Admin
|
28 января 2014 12:56
|
maskman Пишет: раз уж теперь можно добавить практически любую валюту, добавьте, пожалуйста, EGP (египетский фунт) Готово.
|
|
|
Ilyan
|
28 января 2014 15:14
|
Кстати, решение Кирилла можно немного изменить для неполных таблиц курсов, чтобы для дней без курса использовался ближайший предыдущий курс:
SELECT sum(e.Val * r1.RateToRur / r2.RateToRur) FROM Expenses e
LEFT OUTER JOIN Rates AS r1
ON (SELECT MAX(DateID) FROM Rates WHERE CurrencyID = e.CurrencyID and DateID <= e.DateID) = r1.DateID AND e.CurrencyID = r1.CurrencyID
LEFT OUTER JOIN Rates AS r2
ON (SELECT MAX(DateID) FROM Rates WHERE CurrencyID = e.CurrencyID and DateID <= e.DateID) = r2.DateID AND r2.CurrencyID = 840;
Тогда можно позволить пользователям самим создавать свои истории курсов, сохраняя в БД курсы не на каждый день, а только на (обычно) небольшое количество указанных пользователем дат. А если вдруг кто-то слишком увлечется, можно ограничить общее количество курсов на пользователя.
|
|
|
Ilyan
|
28 января 2014 15:18
|
Заодно это решит и проблему с тратами в будущем - для них будет использоваться текущий курс.
* кстати, я не проверял, но если сейчас внести трату сразу после полуночи и создать отчет, результат точно будет определён?
|
|
|
Admin
|
28 января 2014 16:38
|
Ilyan Пишет: если сейчас внести трату сразу после полуночи Всё будет хорошо.
|
|
|
Ilyan
|
28 января 2014 20:13
|
Ещё можно попробовать оптимизировать наиболее частый случай отчетов в основной валюте, в которой обычно и сделано большинство трат:
Заменить
e.Val * r1.RateToRur / r2.RateToRur
на
CASE WHEN e.CurrencyID = 840 THEN e.Val ELSE e.Val * r1.RateToRur / r2.RateToRur END
|
|
|
Ilyan
|
29 января 2014 12:25
|
Admin Пишет: Насчёт изменения курсов безкодовой валюты - есть такая вещь. Подумаем как исправить. Неужели вам и над этим надо подумать годика 4?!
Алгоритм простой: автоматически обновлять курс валют надо только у валют с выставленной галочкой "Обновлять курс автоматически".
Из-за безкодовых валют я не могу пользоваться ни отчетами с историей (из-за неучитываемых трат), ни отчетами без истории (из-за ежедневно сбивающихся курсов)!
|
|
|
bdox
|
4 февраля 2014 17:41
|
Добрый день,
Возможно я что то не правильно делаю и постю(пощу) не там
Есть проблема я купил валюту (указала в обмене за сколько купил т.е. вычислился курс), можно ли к этим деньгам прикрутить этот курс, т.е. если я расходую и делаю отчет в рублях что бы использовался этот курс для рубля(а не тот который автоматический или тот который статический глобальный)? Сейчас можно указать глобальный статический курс, и изменение его будет сказываться на других курсах.
|
|
|
maskman
|
4 февраля 2014 17:59
|
Алмаз Пишет: Возможно я что то не правильно делаю и постю(пощу) не там Не давно начали обсуждать похожую тему
http://www.drebedengi.ru/?module=forumMessageList&topic_id=7316
|
|
|
Admin
|
4 февраля 2014 18:17
|
Алмаз Пишет: можно ли к этим деньгам прикрутить этот курс Здравствуйте,
вопрос не совсем понятен, уточните что значит "прикрутить"? Когда вы фиксируете обмен в системе, вы явно указываете сколько купили и сколько продали, и на основе этих данных автоматически вычисляется курс данной операции.
К курсам валют, задаваемых в настройках валют (вручную или через автообновление) это не имеет никакого отношения.
|
|
|
Ilyan
|
5 февраля 2014 10:40
|
Admin Пишет: Насчёт изменения курсов безкодовой валюты - есть такая вещь. Подумаем как исправить. А воз и ныне там.
Неужели этот баг окажется тем самым, который "не исправляется по полгода" (из темы "Альтернатива дребеденьгам"?
|
|
|
Admin
|
5 февраля 2014 12:25
|
Ilyan Пишет: Неужели этот баг окажется тем самым Вполне возможно. Это не простая проблема.
|
|
|
Maxim Hegel
|
5 февраля 2014 17:04
|
Admin Пишет: Вполне возможно. Это не простая проблема. И в чём же сложность, простите?
Вам же уже даже варианты предложили.
|
|
|
Admin
|
5 февраля 2014 18:10
|
Maxim Hegel Пишет: И в чём же сложность, простите? В том, что внутри системы все курсы хранятся в рублях и на это повязано много разной логики.
|
|
|
Ilyan
|
6 февраля 2014 12:15
|
Может быть опять зал сможет помочь?
Ежедневное обновление курсов - все-таки, довольно обособленная операция, насколько я понимаю.
Для валют с кодом вы храните всю историю (тысячи курсов для каждой) к рублю. Логично предположить, что при ежедневном обновлении просто добавляется 1 новый курс. И он же используется для отчетов с выключенной историей. (пожалуйста, не разочаруйте меня, сказав, что вся история каждый день перегружается полностью.)
Судя по тому, что транзакции в валютах без кода безжалостно отбрасываются в отчетах с включенной историей, для этих валют нет вообще никакой истории курсов, а есть только "текущий курс". Значит, скорее всего существует отдельная таблица "текущих курсов", которая используется при составлении отчетов с выключенной историей.
И судя по всему, в этой таблице вы храните не сам курс к основной валюте, который вводит пользователь, а курс к рублю, пересчитанный на его основе. И проблема в том, что
этот курс вы сами никогда не обновляете, а курс, который я вижу в настройках меняется из-за того, что изменился курс моей основной валюты к рублю.
Что, на мой взгляд, можно сделать:
1. Для валют без указанного пользователем кода, хранить код основной валюты (если у основной валюты он есть).
2. Для каждой валюты хранить дополнительный "курс": для валют с кодом он всегда будет 1, для валют без кода - тот курс, что вводит пользователь.
3. Теперь, при обновлении таблицы "текущих курсов", надо просто взять курс валюты по коду (а он теперь будет у ~100% валют), умножить на дополнительный курс - и voilà.
P.S. Да, я знаю, что в каких-то мелочах решение неполное (например, надо ещё что-то делать при смене пользователем основной валюты), но если мои основные предлоложения верны, а вы вместо решения проблемы собираетесь придираться, то сэкономьте свое время, не отвечайте.
|
|
|
Ilyan
|
20 февраля 2014 19:19
|
Если вы не собираетесь исправлять автообновление курсов валют без кода, я не буду продлевать Premuim в течении 2.4 месяца (с 15 марта)
100 рублей, конечно, не деньги, но должен же я как-то выразить свой протест :)
|
|
|
Ilyan
|
17 марта 2014 10:17
|
На всякий случай, напоминаю, что уже 2 дня сервис несет убытки от непродления моей подписки :)
|
|
|
Admin
|
17 марта 2014 10:53
|
Ilyan Пишет: но должен же я как-то выразить свой протест Протест принят, будем иметь ввиду, но пока нет возможности что-то обещать.
|
|
|
Ilyan
|
16 декабря 2014 17:18
|
В связи с нестабильностью рубля проблема становится очень актуальной - валюты, которые должны быть привязаны к основной валюте (шекелю), на самом деле привязаны к рублю.
|
|
|
Admin
|
16 декабря 2014 17:33
|
Ilyan Пишет: валюты, которые должны быть привязаны к основной валюте (шекелю), на самом деле привязаны к рублю. Здравствуйте.
Уточните, в чём именно проблема проявляется?
|
|
|
Ilyan
|
16 декабря 2014 19:01
|
Для бухгалтерий с основной валютой отличной от RUB у валют БЕЗ автоматического обновления курса курс ежедневно сбивается.
https://drive.google.com/file/d/0By50NczJWxY2TEtaX0pCT3ZjSU0/view?usp=sharing
|
|
|
Admin
|
16 декабря 2014 19:04
|
Да, плохо.
Надо что-то думать.
|
|
|
Ilyan
|
16 декабря 2014 19:33
|
Admin Пишет: Надо что-то думать. Посмотрите пост от 6 февраля 12:15
|
|
|
Елена
|
31 января 14:57
|
Если в справочнике валюта USDT. а в автообновлении стоит USD это влияет на пересчет курсов ?
|
|
|
Admin
|
31 января 15:27
|
В телеграме ответили вам.
|
|
|