Инструменты пользователя

Инструменты сайта


кассир5:внешниемодули:логическиемодулидляскидок:пример2

Пример 2

В следующем примере выполняется начисления скидки на чек, 3 рубля за каждую позицию.

Функция РассчетСкидок_ПолучитьМассивАктивныхСкидокИзКэша_ПостОбработка(Покупка, ВостСкидки) Экспорт
   	_Отказ = Ложь;
	
	Если (Покупка = Неопределено) Тогда	// скидки на чне	
		
		КэшСкидокНаЧек = _Источник.ЛокКэшСкидок;
		Если КэшСкидокНаЧек = Неопределено Тогда
			Возврат _РезультатВызова;
		КонецЕсли;
		
		_КодСхемы = 1; //подобные реквизиты можно вынести в настройки логического модуля
		_КодСкидки = 1;
		
		ДанныеСхемы = КэшСкидокНаЧек.Найти(_КодСхемы, "Схема_Код");
		
		Если ДанныеСхемы <> Неопределено Тогда
			
			СтрокаСкидки = ДанныеСхемы.Скидки.Найти(_КодСкидки, "Скидка_Код");
			Если СтрокаСкидки <> Неопределено Тогда
				тЗнСкидки = ?(СтрокаСкидки.Скидка.ТипСкидки = 1, 1, -1);
				СтрокаСкидки.Скидка.Значение = тЗнСкидки * _Источник.ФормаРегистрации.СоставЧека.Количество() * 3;
				//Внимание! для скидок на позицию при изменении значения скидки необходимо предварительно преобразовать строку таблицы значений Скидка в структуру
			КонецЕсли;
			
		КонецЕсли;
		
	КонецЕсли;
	
	Возврат _РезультатВызова;
КонецФункции
кассир5/внешниемодули/логическиемодулидляскидок/пример2.txt · Последнее изменение: 2015/02/20 12:41 — dzayonchkovskiy