Перейти к содержимому


ошибка при расчете суммы в счете


Сообщений в теме: 6

#1 shambler81

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 98 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 03 Июль 2012 - 16:54

Здравствуйте, уже давно хотел написать по этому поводу, но все не доходили руки.

Сегодня освободилось немного свободного времяни, проанализировать проблемы
Проблема в следующем:
Иногда отображение поля сумма и сумма с НДС не корректные, притом данное явление вызывается еще не доконца установленной причиной, ориентировочно добавлением и убавлением полей счета.

Сумма : 36 000,00
Сумма с НДС :36 000,00
Оплачено : 0,00
Остаток : 30 000,00

Поле остаток правильная цифра!!! притом расчитывается из сумма -оплачено


При добавление еще одной позиции в счете цифрм может считаться корректно
При убавление данного поля цифра возвращяется старая! не корректно расчитаная.

Решил поковыряться в кеше на сервере но так и не нашел там ничего интересного, потом решил поковырять в сикуэльке в надежде найти магическую цифру там.
Нашел данную вот тут


Цитата

517 2 2012-07-03 17:25:33 0 237 Реструктуризация меню сайта шт. 6000.00 1 6 000,00<script>document.getElementById('view_cell_454').innerHTML = '36 000,00';document.getElementById('view_cell_889').innerHTML = '36 000,00';</script> 0 0

подумав что это всего лишь логирование, изменил значение
получаю его в счете.

тут ничего не менял собственно привожу дабы не было вопросов
В базе данных все проверил там все ок таблицы не нарушены.


$sqlQuery = "SELECT sum(f810*f811) as summa FROM ".DATA_TABLE."74 WHERE status=0 AND f807=$ID";
$res = mysql_query($sqlQuery);
$row = mysql_fetch_array($res);
$line['Сумма'] = $row['summa'];
Собственно теперь вопрос
1. почему происходят такие расхождения в счете.
2. почему остаток расчитывается всеже правильно хотя исходит из сумма - оплаченое.
3. Как избавиться от этого.



картинки прикреплены но нормально вывести их в форум я не осилил ;)

Прикрепленные изображения

  • Прикрепленное изображение: q.png
  • Прикрепленное изображение: qq.png
  • Прикрепленное изображение: 32.png

Сообщение отредактировал shambler81: 03 Июль 2012 - 17:09


#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 04 Июль 2012 - 09:39

Выложите здесь все вычисления из таблиц "Счета" и "Позиции счета". Очевидно что причина в некорректных вычислениях. База данных и MySQL тут не причем.

#3 shambler81

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 98 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 04 Июль 2012 - 14:11

вычисления неправильные ? тут два действия чтож тут неправильного, тем боле они стандартные.
И как я и говорил до этого, дальнейшие вычисления
$line['Остаток'] = $line['Сумма с НДС'] - $line['Оплачено'];
уже верные.
ПРИТОМ ['Сумма с НДС'] как видно на скриншоте ни разу не похожа на реальную!
что приводит нас к заключению
1. расчеты верные поскольку дальнейшие расчеты на их основе верны
2. Кто то что то где то кеширует, и это уже выдает в нутри счета.
3. при изменение этой строки в сикуэльке данное некорректное значение меняется на установленное руками.
4. При любом внесение изменений в счет появляется ровно такие же строки, старые не удаляются, а остаются в сикуэлье на всегда.

Ошибка может и не в SQL но хранит свои значения она именно там.

Сообщение отредактировал shambler81: 04 Июль 2012 - 14:14


#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 04 Июль 2012 - 14:26

тут два действия чтож тут неправильного, тем боле они стандартные.

Какие два действия? В Счетах много разных вычислений. И то, что они "стандартные", еще ни о чем не говорит. Мы неоднократно их исправляли, возможно у вас одна из старых версий, у нас ее может не быть, поэтому я вас и попросил выложить все вычисления.

ПРИТОМ ['Сумма с НДС'] как видно на скриншоте ни разу не похожа на реальную!

Что значит "не похожа на реальную"? Раз "непохожа" - значит в ней ошибка, я вам о том и толкую.

1-4
Здесь много ваших домыслов, комментировать их особо смысла нет, лучше разместите для начала код вычислений.

#5 shambler81

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 98 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 04 Июль 2012 - 15:06

Просмотр сообщенияCbCoder (04 Июль 2012 - 14:26) писал:

тут два действия чтож тут неправильного, тем боле они стандартные.

Какие два действия? В Счетах много разных вычислений. И то, что они "стандартные", еще ни о чем не говорит. Мы неоднократно их исправляли, возможно у вас одна из старых версий, у нас ее может не быть, поэтому я вас и попросил выложить все вычисления.

ПРИТОМ ['Сумма с НДС'] как видно на скриншоте ни разу не похожа на реальную!

Что значит "не похожа на реальную"? Раз "непохожа" - значит в ней ошибка, я вам о том и толкую.

1-4
Здесь много ваших домыслов, комментировать их особо смысла нет, лучше разместите для начала код вычислений.


И так по пунктам
клиент 4741 от 2012-06-28 реальный же релиз ставили около 8 месяцев наза.
выкладываю все вычисления. Сумма считается как и считалась до этого, насколько я знаю других вычислений по этому полю и не нужно и быть не может, поправьте если ошибаюсь.
Поля
Если бы я что то дописывал и хоть как то затрагивал это поле своими расчетами конечно бы я в первую очередь исключил бы их.

Цена, Кол-во Сумма в счете также не затрагивались никакими другими видами расчетов. кроме стандартных. собствено и опять еж смысла в этомнет.

Не похожа на реальную это когда у вас в счете Сумма = 10 +10+10 =36
$line['Сумма']
= 36
$line['Сумма'] - $line['Оплачено'];
= 30

Далее добавив еще одну позицию товара 10+10+10+1 = 31
$line['Сумма']
= 31

$line['Сумма'] - $line['Оплачено'];
= 31
Удалив последнюю позицию получаем Сумму 10+10+10=36
$line['Сумма']
= 36
$line['Сумма'] - $line['Оплачено'];
= 30


Удалив все позиции в счете сохранив и создав заново все ок.
p.s разумеется Оплачено =0

Сообщение отредактировал shambler81: 04 Июль 2012 - 15:07


#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 04 Июль 2012 - 15:53

Вы похоже меня не поняли, я просил выложить не вычисления остатка, а ВСЕ вычисления (код вычислений!) из таблиц "Счета" и "Позиции счета". Дождусь? Особенно интересует код из "Позиции счета", т.к. похоже сумма глючит из-за него.


Цитата

клиент 4741 от 2012-06-28 реальный же релиз ставили около 8 месяцев назад.

Ревизия к этому отношения не имеет, конфигурация у вас остается старая, 8-месячной давности.


Цитата

Если бы я что то дописывал и хоть как то затрагивал это поле своими расчетами конечно бы я в первую очередь исключил бы их.

Я и не говорю что вы что-то меняли, ошибка в вычислениях может быть и наша.

#7 shambler81

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 98 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 05 Июль 2012 - 10:38

Спасибо за терпение ;)
Расчеты не выкладывал посколку первым делом все спер у вас с демо версии на всякий пожарный, все свои удалил, в счете моих расчетов никаких нет ни буковки все стандартное, дополнительных полей более 20 но никаких расчетов в самом счете нет.
Ошибку нужно еще постараться вызвать, в общем как только появится больше время проанализирую на вашей базе онлайн. если найду то отпишусь, пока есть куча других задач. ;(, так сказать подоставать я еще вас успею ;).
На выходных попробую поковырять найти причину когда наинают двигатьсярасчеты.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных