Форум пользователей продуктов Трактиръ

Форум пользователей продуктов Трактиръ (https://forum.traktir.ru/index.php)
-   Трактиръ: Front-Office 2.5 (https://forum.traktir.ru/forumdisplay.php?f=15)
-   -   кто неправ, я или СБ (https://forum.traktir.ru/showthread.php?t=216)

Alert 09-09-2005 16:33

кто неправ, я или СБ
 
// распределение скидки по отделам: знак + или -?

Если НеучтеннаяСумма <> 0 Тогда
НераспределеннаяСумма = НеучтеннаяСумма;
СуммаПоВсемОтделам = ТаблицаОтделов.Итог("Сумма");

ТаблицаОтделов.ВыбратьСтроки();
Пока ТаблицаОтделов.ПолучитьСтроку() = 1 Цикл
Доля = ТаблицаОтделов.Сумма/СуммаПоВсемОтделам;
СуммаНаОтдел = Окр(НеучтеннаяСумма*Доля,2,1);
ТаблицаОтделов.Сумма = ТаблицаОтделов.Сумма-СуммаНаОтдел;
НераспределеннаяСумма = НераспределеннаяСумма-СуммаНаОтдел;
КонецЦикла;

Если НераспределеннаяСумма <> 0 Тогда
ТаблицаОтделов.ПолучитьСтрокуПоНомеру(ТаблицаОтдел ов.КоличествоСтрок());
// ТаблицаОтделов.Сумма = ТаблицаОтделов.Сумма+НераспределеннаяСумма; оригинал СБ
ТаблицаОтделов.Сумма = ТаблицаОтделов.Сумма-НераспределеннаяСумма; //мой вариант
КонецЕсли;
КонецЕсли;

// ФРОНТ - релиз 206

GSM 09-09-2005 18:11

По-моему наш вариант правильный. Ведь сумма распределения всегда вычетается. И, если мы вычтем больше, чем надо, то остаток получится отрицательный. При повторном вычитании минус на минус даст плюс. Если же в процессе распределения не вся сумма будет распределена, то она и вычтется.
:cool:

Alert 12-09-2005 10:40

Простой пример. Клиент поел-попил на 1000 руб. Причем по отделам сумма распеделилась так:
1 - 333.33
2 - 333.33
3 - 333.34
У него есть право на 10% скидку, т.е. заплатить он должен 900. Ему ведь не важно, как распределяется его сумма по отделам, так?
По Вашему алгоритму получаем Доли и СуммыНаОтдел (НеучтеннаяСумма = 100):
1 Доля 0.33333 СуммаНаОтдел 33,33
2 Доля 0.33333 СуммаНаОтдел 33.33
3 Доля 0.33334 СуммаНаОтдел 33.33
Таким образом получаем ТаблицаОтделов.Сумма = 900.01 и НераспределеннаяСумма = 0.01
ТаблицаОтделов.Сумма+НераспределеннаяСумма даст 900.02
Конечно, клиент не будет поднимать шум из-за 2х копеек. Шум поднимает бухгалтерия, у которой Z-отчет по ФР не сходится с Фронтовым отчетом по выручке как раз на эти копейки.

MaxS 12-09-2005 18:55

Да Алексей, действительно, Вы правы!
Такая ошибка есть, причем тянется она еще из 1-го Фронта!
Вероятно, Вы первый кто встретился с такой редкой ситуацией, или кто обратил на нее внимание. Большое спасибо! От наших тестеров она ускользала на протяжении вот уже 3-х лет :)
Эх, если бы Вы написали на день раньше - исправили бы в 208 релизе, а теперь придется ждать 209, ну или самим поменять "+" на "-" :)


Часовой пояс GMT +3, время: 22:51.

vBulletin v3.5.4, Copyright ©2000-2024, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co
Трактиръ - автоматизация ресторанов