AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.07.2002, 17:48   #1  
Роман Кошелев is offline
Роман Кошелев
Продавец игрушек
Аватар для Роман Кошелев
 
433 / 73 (3) ++++
Регистрация: 22.11.2001
Адрес: Москва
? Общая скидка в модуле Заказы
Есть желание продавать товар со скидкой, процентное значение которой зависит от суммы заказа, например:
при покупке у нас на сумму 1000$-2000$ клиент получает скидку в 2%,
при покупке на сумму 2000-5000$ скудку в 5%, при покупке на сумму
свыше 5000$ - скидку 7%, и т.д.
Причём, хочется, чтобы оператор не мог менять эти самые скидки, чтобы они вычислялись автоматически от суммы заказа.

Насколько я понял, это реализуемо в Аксапте через механизм общих скидок.

Вот что я сделал:
<b>1. Установил цену для номенклатуры в 100$, активизировал поле "общие скидки"





2. В настройках модуля "Заказы" активизировал общие скидки:





3. создал общие скидки и настроил для них коммерческие соглашения (указал порог,
проценты и ещё абсолютное значение на всякий случай)





4. Создал заказ и включил в него номенклатуру:






Теперь я ожидаю, что, поскольку заказ большой (на 10,000$), то должна сыграть хотя-бы одна скидка. Но не тут-то было:





А вот если на закладке заказа [Цена/скидка] указать явно общую скидку = 50%, ...




... то получим ожидаемый результат:</b>





Но это, конечно, не то что хотелось изначально.
Хочется, чтобы Аксапта автоматически вычисляла скидки по каждому заказу в зависимости от его суммы.

Что я пропустил?
Вложения
Тип файла: img2888-1 (14.0 Кб, 492 просмотров)
Тип файла: img2888-2 (21.1 Кб, 450 просмотров)
Тип файла: img2888-3 (49.6 Кб, 541 просмотров)
Тип файла: img2888-4 (56.7 Кб, 579 просмотров)
Тип файла: img2888-5 (64.9 Кб, 555 просмотров)
Тип файла: img2888-6 (19.6 Кб, 487 просмотров)
Тип файла: img2888-7 (18.9 Кб, 507 просмотров)
__________________
С уважением, Роман Кошелев.
Старый 22.07.2002, 18:12   #2  
Falcon is offline
Falcon
Восставший
Соотечественники
 
753 / 35 (3) +++
Регистрация: 08.02.2002
Адрес: Pincourt, Quebec, Canada
Роман, приветствую!

Сразу хочу оговориться: если мои ответы-советы покажутся слишком наивными и глупыми, прошу извинить, "чем могу", как говорится"...

1. Что стоит у Вас в Параметрах Заказов-> Цены ?
2. Пробовали ли нажимать "расчет"->"общая скидка" в форме Заказа?
Вложения
Тип файла: img2889-1 (9.7 Кб, 544 просмотров)
Старый 22.07.2002, 18:17   #3  
Falcon is offline
Falcon
Восставший
Соотечественники
 
753 / 35 (3) +++
Регистрация: 08.02.2002
Адрес: Pincourt, Quebec, Canada
Кстати, Ваш вопрос - прям из ГНАД-овского экзамена
You have created a multi-line discount agreement for a group of items to one customer. The discount is not displayed in the Sales order form. What could be the reason?

You forgot to activate the agreement combination.
This agreement combination is not valid.
You forgot to check the 'Find next' on the multi-line discount group.
You must run the 'Calculate Multi-line discount' job from Periodic first.
Старый 22.07.2002, 18:22   #4  
Роман Кошелев is offline
Роман Кошелев
Продавец игрушек
Аватар для Роман Кошелев
 
433 / 73 (3) ++++
Регистрация: 22.11.2001
Адрес: Москва
Похоже на последнее:
"You must run the 'Calculate Multi-line discount' job from Periodic first.",
сейчас посмотрю...
...Нет, не могу найти подходящую операцию ни в одном модуле.
__________________
С уважением, Роман Кошелев.
Старый 22.07.2002, 18:30   #5  
Роман Кошелев is offline
Роман Кошелев
Продавец игрушек
Аватар для Роман Кошелев
 
433 / 73 (3) ++++
Регистрация: 22.11.2001
Адрес: Москва
Кстати, а что бы могло означать "This agreement combination is not valid.
"?
__________________
С уважением, Роман Кошелев.
Старый 22.07.2002, 18:34   #6  
Falcon is offline
Falcon
Восставший
Соотечественники
 
753 / 35 (3) +++
Регистрация: 08.02.2002
Адрес: Pincourt, Quebec, Canada
Если Вы обратили внимание - не все комбинации (Цена/Скидка по строке/Многострочная/Общая) с одной стороны, и "Клиент/группы цен/Все клиенты" - с другой, могут быть "оптичены". К примеру, нельзя установить специальную цену для Всей номенклатуры. Или многострочную скидку - для конкретной номенклатуры. ЧТо в общем логично Вот это и имелось в виду.
Роман, а Вы сами этот экзамен - сдавали?

"Calculate.... from Periodic" - такой функции в Аксапте вообще нет, это ответ-ловушка.
Выполнить расчет общей скидки можно только из формы заказа
Старый 22.07.2002, 18:37   #7  
Роман Кошелев is offline
Роман Кошелев
Продавец игрушек
Аватар для Роман Кошелев
 
433 / 73 (3) ++++
Регистрация: 22.11.2001
Адрес: Москва
Экзамен не сдавал, университетов не кончал.
А вот где бы эта периодическая операция для пересчётов скидок могла бы прятаться?
("You must run the 'Calculate Multi-line discount' job from Periodic first.")
__________________
С уважением, Роман Кошелев.
Старый 22.07.2002, 18:38   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Falcon, будьте проще

Для того, чтобы в заказе посчиталась общая скидка надо:
1. предварительно настроить скидку
2. активизировать ее
Роман, ты это все сделал

3. в заказе после того, как введены строчки, нажать Расчет / Общая скидка. (Исправил, виноват, в стандартной версии так).

Если не хочешь, чтобы общую скидку редактировал менеджер, то на функциональный ключ, который управляет общей скидкой дай группе менеджеров право на чтение.
Старый 22.07.2002, 18:41   #9  
Falcon is offline
Falcon
Восставший
Соотечественники
 
753 / 35 (3) +++
Регистрация: 08.02.2002
Адрес: Pincourt, Quebec, Canada
Маззи, Роман,

Извините Я подозревал, что все так просто, и даже пытался об этом сказать - да неуверен был, правильно ли
Старый 22.07.2002, 18:42   #10  
Роман Кошелев is offline
Роман Кошелев
Продавец игрушек
Аватар для Роман Кошелев
 
433 / 73 (3) ++++
Регистрация: 22.11.2001
Адрес: Москва
Так-так...
это интересно...
Нажимаем на заказе "функции" и не видим ничего подобного:


Насчёт прав, это верно, это мы потом закроем.
Вложения
Тип файла: img2899-1 (11.2 Кб, 705 просмотров)
__________________
С уважением, Роман Кошелев.
Старый 22.07.2002, 18:44   #11  
Falcon is offline
Falcon
Восставший
Соотечественники
 
753 / 35 (3) +++
Регистрация: 08.02.2002
Адрес: Pincourt, Quebec, Canada
Не функции, Роман!!!
Расчет!!! В НИЖНЕЙ части!!!
Вложения
Тип файла: img2900-1 (8.4 Кб, 550 просмотров)
Старый 22.07.2002, 18:48   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
О! как все быстро.
Да я написал неправильно в том постинге.
Исправил.

В стандартной версии Заказ \ Расчет \ Общая скидка.

Это я у себя переносил малость. Виноват.
Старый 22.07.2002, 18:50   #13  
Роман Кошелев is offline
Роман Кошелев
Продавец игрушек
Аватар для Роман Кошелев
 
433 / 73 (3) ++++
Регистрация: 22.11.2001
Адрес: Москва
Ага!!
Ну кто бы мог подумать?...
Фалькон, Маззи, большое вам спасибо!


Буду дальше ковыряться... (:
Вложения
Тип файла: img2902-1 (19.0 Кб, 662 просмотров)
__________________
С уважением, Роман Кошелев.
Старый 22.07.2002, 19:28   #14  
Роман Кошелев is offline
Роман Кошелев
Продавец игрушек
Аватар для Роман Кошелев
 
433 / 73 (3) ++++
Регистрация: 22.11.2001
Адрес: Москва
Ещё вопрос (думаю, не последний):


Я установил два порога для скидок,
для заказов от 1000$ = 2%
для заказов от 5000$ = 10%



В результате получил сложение этих скидок (12%):



Правильно ли я понимаю, что в Аксапте скидки складываются?
И придётся указывать 2% и 8% чтобы получить в результате 10%?
Или можно сделать так, чтобы задавать их явно?
Вложения
Тип файла: img2904-1 (58.5 Кб, 526 просмотров)
Тип файла: img2904-2 (68.7 Кб, 567 просмотров)
__________________
С уважением, Роман Кошелев.
Старый 22.07.2002, 22:29   #15  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
ты же сам указал в скидке галочку, что надо искать скидки дальше
вот она и ищет.
Старый 23.07.2002, 10:02   #16  
Роман Кошелев is offline
Роман Кошелев
Продавец игрушек
Аватар для Роман Кошелев
 
433 / 73 (3) ++++
Регистрация: 22.11.2001
Адрес: Москва
Маззи,
Я всегда понимал так, что галочка даёт право на дальнейший поиск более хороших условий, а не на суммирование этих условий.
Когда я снимал эту галочку, Аксапта останавливалась на скидке в 2%, даже если заказ заслуживал большего.

Так что галочки, как я полагал, не должны влиять на <u>аддитивность</u>.
Или я ошибаюсь и Аксапта собирает все коммерческие соглашения, отмеченные галочкой, пока не остановится и при этом суммирует все скидки?
__________________
С уважением, Роман Кошелев.
Старый 23.07.2002, 12:47   #17  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Хм... а ведь ты прав. Я ошибался.
Действительно только выбор, а не суммирование...
Забавно. Надо рыть.
Старый 23.07.2002, 13:03   #18  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Хм... забавно.
процент скидки не берется из таблицы скидок. Он РАССЧИТЫВАЕТСЯ!!!

Tables : PriceDsicHading :
PHP код:
/*
    AOSRunMode::Called
*/
server void  updateFinalDisc(PriceDiscLine   priceDiscLine)
{
    
PriceDisc               priceDisc;

    
InventTableModule       inventTableModule;

    
AmountCur               balanceEndDisc;
    
ModuleInventPurchSales  moduleType priceDiscLine.moduleType();
    ;

    while 
select sum(lineAmountfrom priceDiscLine
                 group by itemId
                 where priceDiscLine
.salesPurchId   == this.salesPurchId
                    
&& priceDiscLine.itemId
                 join inventTableModule
                      group by endDisc
                      where inventTableModule
.itemId     == priceDiscLine.itemId  &&
                            
inventTableModule.moduleType == moduleType            &&
                            
inventTableModule.endDisc    == NoYes::Yes
    
{
        
balanceEndDisc += priceDiscLine.lineAmount;
    }

    
priceDisc = new PriceDisc(this.moduleType(),
                              
priceDiscLine.itemId,
                              
priceDiscLine.configId,
                              
priceDiscLine.unit,
                              
systemdateGet(),
                              
priceDiscLine.qty,
                              
this.accountNum,
                              
this.currency);

    if (
priceDisc.findEndDisc(this.endDiscbalanceEndDisc))
    {
        if (
priceDisc.getDiscAmount() * balanceEndDisc != 0)
        {
            
this.discPercent balanceEndDisc decRound(100 priceDisc.getDiscAmount() / balanceEndDisc,2) : 0;
            
this.update();
        }
    }

Надо подумать над этим... Мдя...
Старый 23.07.2002, 13:14   #19  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Роман, а у тебя в тестовом заказе есть товар, по которому общая скидка не считается?

Алгоритм на псведокоде:
1. Взять чистую сумму по заказам (закупкам), которые влияют на общую скидку
2. Найти одну (!) строку в коммерческих соглашениях
3. Если строка найдена,
4. то процент скидки = сумма в комерческих согласшениях / чистую сумму по заказам (закупкам)

Что-то я не очень понимаю... смысл пункта 4.
Надо еще подумать.
Старый 23.07.2002, 15:11   #20  
Роман Кошелев is offline
Роман Кошелев
Продавец игрушек
Аватар для Роман Кошелев
 
433 / 73 (3) ++++
Регистрация: 22.11.2001
Адрес: Москва
Цитата:
Изначально опубликовано mazzy
Роман, а у тебя в тестовом заказе есть товар, по которому общая скидка не считается?
Нет, у меня в заказе только один товар, по которому всё настроено.
__________________
С уважением, Роман Кошелев.
Теги
заказ на продажу, общая скидка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Скидка по оплате в предложении по оплате AlexeyBP DAX: Функционал 1 19.04.2006 10:57
Сводное планирование - заказы на производство из ниоткуда OliaM DAX: Функционал 9 06.03.2006 17:47
Общая скидка - ошибка при обработке? djoker DAX: Функционал 7 17.02.2005 23:02
Скидка по строке и многострочная скидка efim DAX: Функционал 0 18.06.2003 16:32
Разноска 'Скидка по счету для клиента' Роман Кошелев DAX: Функционал 2 23.07.2002 17:58
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:39.