Страница 1 из 1

Неверный подсчёт цен на основании конкурентов

Добавлено: 17 мар 2014 08:43
ankl6ens
Ситуация такая - на категории товаров установлены наценки, так же имеются прайсы, в которых есть цены РРЦ и ОПТ(в программе это настроено) и есть формула:

ОКРУГЛЕНИЕ_КРАТНО(ЕСЛИ({ЦЕНА_РРЦ}>0, {ЦЕНА_РРЦ}, ЕСЛИ({МинЦенаКонкурентов}>0, ЕСЛИ({МинЦенаКонкурентов}>{РозничнаяЦенаСТУС}, {МинЦенаКонкурентов}-10000, ЕСЛИ({МинЦенаКонкурентов}>{МинЦенаПоставщиков} AND {МинЦенаКонкурентов}<{РозничнаяЦенаСТУС} AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}=<190000), {МинЦенаПоставщиков}+20/{КУРС_USD}, ЕСЛИ({МинЦенаКонкурентов}>{МинЦенаПоставщиков} AND {МинЦенаКонкурентов}<{РозничнаяЦенаСТУС} AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}>190001) AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}=<285000), {МинЦенаПоставщиков}+(25/{КУРС_USD}), ЕСЛИ({МинЦенаКонкурентов}>{МинЦенаПоставщиков} AND {МинЦенаКонкурентов}<{РозничнаяЦенаСТУС} AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}>285001), {МинЦенаКонкурентов}-10000, ЕСЛИ({МинЦенаКонкурентов}=<{МинЦенаПоставщиков} AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}=<190000), {МинЦенаПоставщиков}+(15/{КУРС_USD}), ЕСЛИ({МинЦенаКонкурентов}=<{МинЦенаПоставщиков} AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}>190001) AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}=<285000) , {МинЦенаПоставщиков}+(20/{КУРС_USD}), ЕСЛИ({МинЦенаКонкурентов}=<{МинЦенаПоставщиков} AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}=>285001) , {МинЦенаПоставщиков}+(30/{КУРС_USD}), {МинЦенаПоставщиков}+900000))))))), {РозничнаяЦенаСТУС})), 100)

При импорте всех поставщиков, а затем при пракетной обработке формируется цена с учетом - если есть в прайсе каком либо РРЦ, то ставится эта цена, если ОПТ цена формируется на основании наценок и по формуле смотрится есть ли позиция у конкурента - если есть, то выбирается цена конкурента минус 10000. Но программа неправильно выбирает, пример - позиция есть по РРЦ и у поставщиков на основании цены ОПТ, выбралась цена поставщика ОПТ + наценка и не прировнялась к цене конкурента минус 10000. А должна была выбраться цена РРЦ. В настройках стоит выбирать минимальную цену поставщика. Может тут ошибка в формуле, но где мне не удаётся понять?

Re: Неверный подсчёт цен на основании конкурентов

Добавлено: 17 мар 2014 12:27
Ixenon
Ужос :-)
Возможно в таком виде вам будет проще определить что у вас не так:

Код: Выделить всё

ОКРУГЛЕНИЕ_КРАТНО(
	ЕСЛИ({ЦЕНА_РРЦ}>0
		, {ЦЕНА_РРЦ}
		, ЕСЛИ({МинЦенаКонкурентов}>0
			, ЕСЛИ({МинЦенаКонкурентов}>{РозничнаяЦенаСТУС}
				, {МинЦенаКонкурентов}-10000
				, ЕСЛИ({МинЦенаКонкурентов}>{МинЦенаПоставщиков} AND {МинЦенаКонкурентов}<{РозничнаяЦенаСТУС} AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}=<190000)
					, {МинЦенаПоставщиков}+20/{КУРС_USD}
					, ЕСЛИ({МинЦенаКонкурентов}>{МинЦенаПоставщиков} AND {МинЦенаКонкурентов}<{РозничнаяЦенаСТУС} AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}>190001) AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}=<285000)
						, {МинЦенаПоставщиков}+(25/{КУРС_USD})
						, ЕСЛИ({МинЦенаКонкурентов}>{МинЦенаПоставщиков} AND {МинЦенаКонкурентов}<{РозничнаяЦенаСТУС} AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}>285001)
							, {МинЦенаКонкурентов}-10000
							, ЕСЛИ({МинЦенаКонкурентов}=<{МинЦенаПоставщиков} AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}=<190000)
								, {МинЦенаПоставщиков}+(15/{КУРС_USD})
								, ЕСЛИ({МинЦенаКонкурентов}=<{МинЦенаПоставщиков} AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}>190001) AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}=<285000)
									, {МинЦенаПоставщиков}+(20/{КУРС_USD})
									, ЕСЛИ({МинЦенаКонкурентов}=<{МинЦенаПоставщиков} AND ({РозничнаяЦенаСТУС}-{МинЦенаПоставщиков}=>285001)
										, {МинЦенаПоставщиков}+(30/{КУРС_USD})
										, {МинЦенаПоставщиков}+900000)))))))
			, {РозничнаяЦенаСТУС}))
, 100)

Re: Неверный подсчёт цен на основании конкурентов

Добавлено: 25 мар 2014 11:49
ankl6ens
Есть какие мысли у кого, что в этой формуле может быть не так? Спасибо.

Re: Неверный подсчёт цен на основании конкурентов

Добавлено: 25 мар 2014 12:19
Ixenon
ankl6ens писал(а):Есть какие мысли у кого, что в этой формуле может быть не так? Спасибо.
Об этом лучше всего спросить того, кто этого монстра создавал :-)