Проблемы с арифметикой 5.2.1-005
Проблемы с арифметикой 5.2.1-005
Вооружаемся калькулятором.
-699239-1214362=-1913602 а вовсе не -1906054
Откуда вылазит разница в 7528 РЭ ??
З.Ы. Не пугайтесь количеста разрядов - рубли белорусские.
Никакие услуги не включались и не отключались.
Сумма в счете 1214362.15 то есть верная.
у нас шеф... 20тысяч рублей за месяц это грубо говоря одна зарплата тех специалиста... чего он и сделал... просто разделил эту сумму на всех нас... теперь мы думаем скинуться на другой биллинг...
в соседнем топике про классы трафика тоже есть интересная проблема которая бъет шефа по карману... готовимся к оплате...
а как доказать? есть сертификат значит считает точно... иначе бы его не давали ... если деньги уходят- значит спецы воруют...
в соседнем топике про классы трафика тоже есть интересная проблема которая бъет шефа по карману... готовимся к оплате...
а как доказать? есть сертификат значит считает точно... иначе бы его не давали ... если деньги уходят- значит спецы воруют...
Re: Проблемы с арифметикой 5.2.1-005
Вы точно хотите знать откуда разница?Maximas писал(а):
Вооружаемся калькулятором.
-699239-1214362=-1913602 а вовсе не -1906054
Откуда вылазит разница в 7528 РЭ ??
З.Ы. Не пугайтесь количеста разрядов - рубли белорусские.
Никакие услуги не включались и не отключались.
Сумма в счете 1214362.15 то есть верная.
Эта разница возникает из-за того что основной отчет строится так что в него корректно попадают пользователи у которых были списания в этом месяце, т.е. если взять пользователя у которого на 31,09 был баланс 5 рублей, и с этого пользователя в октябре нифига не списывалось то в отчете вход остаток у пользователя будет как 0 и исходящий соответственно тоже.
можешь проверть данное утверждене взяв пользователя с ненулевым балансом и построив по нему основной отчет за произвольный период длинной в 1 секунду (главное чтобы в эту секунду списаний небыло)
Как решение данной проблемы строить основной отчет самостоятельно. но это охеренно ресурсоемкая операция.
Для этого для каждого пользователя:
Надо найти в таблице транзакшин_алл запись с максимальным ид и датой меньше или равной дате начала отчета (это будет вход остаток)
Надо найти в таблице транзакшин_алл запись с минимальным ид и датой большей или равной дате конца отчета (это будет исход остаток)
Просуммировать платежи за выбранный период.
объединить эти таблицы и посчитать итоги
Есть вариант сделать это на триггерах. Идея в следующем:
создать таблицу и при каждой вставки записи в таблицу транзакций, проводить операцию суммирования в своей таблице.
Ну а потом основной отчет на базе своей таблицы будет занимать несколько секунд... Мне это делать некогда, поэтому если есть желающие велкам
ЗЫ в 006 записи о платежах тоже стали вносится в дискаунт_транзакшн_алл, следовательно для решения проблемы построения отчета за _расчетный период_ вполне достаточно (на 99% ручаюсь) внести всем юзерам в течении расчетного периода_ нулевой платеж.
Так чет я загнался, не о том написал хотя и близко по теме.
Теперь конкретно по вопросу:
Раньше исходящий остаток не брался из базы, а вычислялся путем вычитания из вход остатка списаний и прибавления платежей, счас возможно они это исправили, но не учли перевод часов.
т.е. счас он может браться как выборка значения из записи с макс ид
и меньшей или равной дате окончания выбранного периода в отчете по этому пользователю.
Поэтому попробуй построить основной отчет по этому юзеру но на час меньше (или больше, куда мы там переводили) полученный исход остаток попробуй воткнуть в ранее полученный отчет. если цифры сойдутся то проблема в этом.
Теперь конкретно по вопросу:
Раньше исходящий остаток не брался из базы, а вычислялся путем вычитания из вход остатка списаний и прибавления платежей, счас возможно они это исправили, но не учли перевод часов.
т.е. счас он может браться как выборка значения из записи с макс ид
и меньшей или равной дате окончания выбранного периода в отчете по этому пользователю.
Поэтому попробуй построить основной отчет по этому юзеру но на час меньше (или больше, куда мы там переводили) полученный исход остаток попробуй воткнуть в ранее полученный отчет. если цифры сойдутся то проблема в этом.
Хм, вон топикстартера вполне удовлетворяет то что у него ндс 18% от суммы 1029120,539 равен 185241,757, хотя должен быть равен 185241,697 округления ебть.AdmUser писал(а):у нас шеф... 20тысяч рублей за месяц это грубо говоря одна зарплата тех специалиста... чего он и сделал... просто разделил эту сумму на всех нас... теперь мы думаем скинуться на другой биллинг...
в соседнем топике про классы трафика тоже есть интересная проблема которая бъет шефа по карману... готовимся к оплате...
а как доказать? есть сертификат значит считает точно... иначе бы его не давали ... если деньги уходят- значит спецы воруют...