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


Ошибка при добавлении позиции товара в счете



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

#1 OLDest

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

  • Пользователи
  • PipPipPip
  • 268 сообщений
  • Пол:Мужчина
  • Город:Калининград

Отправлено 03 Июль 2013 - 13:20

Если в счет добавить 2 позиции одного и того-же товара итоговая сумма будет неверной, т.к. система посчитает тока одну позицию. Пример - добавляем позицию Товара 1 со стоимостью 100р в количестве 1, сохраняем - сумма в счете будет 0.
Добавляем еще одну позицию Товара 1 со стоимостью 100р в количестве 2, сохраняем - сумма в счете будет 100р
Добавляем еще одну позицию Товара 1 со стоимостью 100р в количестве 4, сохраняем - сумма в счете будет 700р
Меняем количество Товара 1 в первой позиции на 5 - сумма будет 600

Сообщение отредактировал OLDest: 03 Июль 2013 - 13:22

Купил лицензию КБ

#2 CbCoder

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

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

Отправлено 03 Июль 2013 - 13:39

Речь о последней стандартной конфигурации? Или вы о какой-то своей конфигурации? У нас подобного не замечено.

#3 OLDest

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

  • Пользователи
  • PipPipPip
  • 268 сообщений
  • Пол:Мужчина
  • Город:Калининград

Отправлено 03 Июль 2013 - 15:23

у Вас на SAAS. аккаунт сделал сегодня меньше 3-х часов назад

Сообщение отредактировал OLDest: 03 Июль 2013 - 15:26

Купил лицензию КБ

#4 OLDest

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

  • Пользователи
  • PipPipPip
  • 268 сообщений
  • Пол:Мужчина
  • Город:Калининград

Отправлено 03 Июль 2013 - 15:25

ошибка в одном из запросов у вас стоит id<>{ID}
Купил лицензию КБ

#5 CbCoder

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

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

Отправлено 03 Июль 2013 - 15:27

На demo.clientbase.ru ничего подобного не наблюдаю. Все считает корректно.

#6 OLDest

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

  • Пользователи
  • PipPipPip
  • 268 сообщений
  • Пол:Мужчина
  • Город:Калининград

Отправлено 03 Июль 2013 - 15:35

https://bqsoldest-3.clientbase.ru/
логин test пароль test
Купил лицензию КБ

#7 OLDest

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

  • Пользователи
  • PipPipPip
  • 268 сообщений
  • Пол:Мужчина
  • Город:Калининград

Отправлено 03 Июль 2013 - 15:36

изменений никаких в вычислениях не делалось
Купил лицензию КБ

#8 CbCoder

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

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

Отправлено 03 Июль 2013 - 15:46

Очевидно, что у вас какая то старая версия конфигурации, с некорректным вычислением.

У вас:

$sqlQ = "SELECT SUM(`f2051`) AS sum FROM ".DATA_TABLE."74 WHERE `f807`=".$line['Счет']['raw']." and status=0 and `id`<>".$ID;
$pre = sql_query($sqlQ) or die(mysql_error());
$row = mysql_fetch_assoc($pre);

if ($row['sum']===NULL)
	{
	  $line['Счет']['Сумма']=0;
	}
	else
	{
	  $line['Счет']['Сумма']=$row['sum'];
	}

Должно быть (demo.clientbase.ru):

$sqlQ = "SELECT SUM(`f2051`) AS sum FROM ".DATA_TABLE."74 WHERE `f807`=".$line['Счет']['raw']." and status=0 and `id`<>".$ID;
$pre = sql_query($sqlQ) or die(mysql_error());
$row = mysql_fetch_assoc($pre);

if ($row['sum']===NULL)
	{
	  $line['Счет']['Сумма']=$line['Итого'];
	}
	else
	{
	  $line['Счет']['Сумма']=$row['sum']+$line['Итого'];
	}

Т.е. в вашем случае не учитывается текущая строка.

(Вычисление "Итого в счет" таблицы "Позиции счета")

#9 OLDest

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

  • Пользователи
  • PipPipPip
  • 268 сообщений
  • Пол:Мужчина
  • Город:Калининград

Отправлено 03 Июль 2013 - 15:55

еще раз - это ВАША конфигурация, которая генерится оп умолчанию при создании аккаунта
Купил лицензию КБ

#10 OLDest

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

  • Пользователи
  • PipPipPip
  • 268 сообщений
  • Пол:Мужчина
  • Город:Калининград

Отправлено 03 Июль 2013 - 15:56

и ошибка не в 0 а в and `id`<>".$ID;, т.е. все кроме текущей записи
Купил лицензию КБ

#11 CbCoder

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

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

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

Просмотр сообщенияOLDest (03 Июль 2013 - 15:55) писал:

еще раз - это ВАША конфигурация, которая генерится оп умолчанию при создании аккаунта

Нашу текущую конфигурацию мы проверили - там все верно, код из demo.clientbase.ru в качестве примера я вам выложил. Возможно, вы загружали бэкап, либо ошибка в конфигурации была исправлена недавно, я не в курсе. Вы можете просто заменить код на верный.


Просмотр сообщенияOLDest (03 Июль 2013 - 15:55) писал:

и ошибка не в 0 а в and `id`<>".$ID;, т.е. все кроме текущей записи

Нет, не верно. Текущая запись преднамеренно исключена, т.к. содержит старую сумму. Новая сумма лежит в $line. Проверьте сами корректность вышеизложенного кода, раз есть сомнения.

#12 OLDest

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

  • Пользователи
  • PipPipPip
  • 268 сообщений
  • Пол:Мужчина
  • Город:Калининград

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

я не загружал конфиг, взял сразу ваш. ошибка в в and `id`<>".$ID;, просто потому что стоит сохранение в таблице при изменении, т.е. как тольуо сменили значение оно уже текущее (проверил локально - и глючит страшно ваш код). убрал проверку ID - заработало нормально.
Купил лицензию КБ

#13 CbCoder

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

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

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

Цитата

стоит сохранение в таблице при изменении

Это что такое? Есть опция "сохранение при добавлении", но в подтаблицах она бесполезна (не работает)

#14 OLDest

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

  • Пользователи
  • PipPipPip
  • 268 сообщений
  • Пол:Мужчина
  • Город:Калининград

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

я про нее и говорю и в подтаблицах еще ка работает, иначе не было бы обновления суммы для оплаты в счетах
Купил лицензию КБ

#15 CbCoder

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

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

Отправлено 03 Июль 2013 - 17:14

Я про то что сохранение в подтаблицах работает в независимости от этой опции. Включать/выключать ее специально никакого смысла нет.

Что касается вычисления - я проверил, оно действительно работает и в вашем варианте. Будем выяснять, кто и зачем так загнул с его логикой. Тем не менее в текущей стандартной конфигурации все тоже работает.

#16 OLDest

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

  • Пользователи
  • PipPipPip
  • 268 сообщений
  • Пол:Мужчина
  • Город:Калининград

Отправлено 03 Июль 2013 - 17:29

нет. оно не работает независимо от этой опции. если опция выключена - не срабатывают завязанные вычисления.
по поводу вычисления - никто не загнул, просто программист переработал и устал.в вашем случае это ошибочное вычисление, предполагающее много багов, просто потому что може быть просто 2 исключения в позициях.
создайте новый аккаунт на вашем саас сервере и увидите эту ошибку. в демо - видно подправили, я не заходил.
Купил лицензию КБ

#17 CbCoder

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

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

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

Цитата

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

Во-первых, никто не "устал", логика вычисления явно преднамеренная, а не случайно взятая с потолка. Выше я уже описал возможную причину, но оказалось что сейчас исключать текущую запись смысла нет. Возможно ранее, когда писалось вычисление, было по другому.
Во-вторых, оно не "ошибочное", т.к. работает, просто его можно было проще описать. Никаких "багов" в нем нет. Баг был в вашем варианте вычисления, а не в текущем.

Цитата

создайте новый аккаунт на вашем саас сервере и увидите эту ошибку. в демо - видно подправили, я не заходил

Стандартная конфигурация в демо ничем не отличается от конфигурации в новом аккаунте - везде стоит одна и та же конфигурация, которая автоматом собирается из дистрибутива. Я вчера в первую очередь проверил дистрибутив - все там нормально. После ваших слов проверил и новый аккаунт - там тоже все отлично работает.





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

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