Диплом: Автоматизация учета продажи билетов туристического агентства ООО "Easy Travel"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
120
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если(ЗначениеЗаполнено(Объект.Ссылка))Тогда
Элементы.Тур.Вид=ВидПоляФормы.ПолеНадписи;
Элементы.Тур.ЦветФона=Новый Цвет(255,255,0);
Элементы.Тур.Шрифт=Новый Шрифт(,10,Истина,,,,,);
ИмяТура=Объект.Тур;
ПолучитьДанныеТура(ИмяТура, Продолжительность, ОриентировочнаяСтоимость,
Ссылка);
Объект.Стоимость=ОриентировочнаяСтоимость;
Иначе
Элементы.Тур.Вид=ВидПоляФормы.ПолеВвода;
КонецЕсли;
ПриОткрытииНаСервере();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПриОткрытииНаСервере()
// Вставить содержимое обработчика.
КонецПроцедуры
&НаКлиенте
Процедура КонецТураПриИзменении(Элемент)
КонецТура=Объект.КонецТура;
НачалоТура=КонецТура-Продолжительность*3600*24;
Объект.НачалоТура=НачалоТура;
КонецПроцедуры
&НаКлиенте
Процедура ТурПриИзменении(Элемент)
ИмяТура=Объект.Тур;
ПолучитьДанныеТура(ИмяТура, Продолжительность, ОриентировочнаяСтоимость,
Ссылка);
Если(ЗначениеЗаполнено(Объект.НачалоТура))Тогда
НачалоТура=Объект.НачалоТура;
КонецТура=НачалоТура+Продолжительность*3600*24;
Объект.КонецТура=КонецТура;
Иначе
Если(ЗначениеЗаполнено(Объект.КонецТура))Тогда
КонецТура=Объект.КонецТура;
НачалоТура=КонецТура-Продолжительность*3600*24;
Объект.НачалоТура=НачалоТура;
КонецЕсли
КонецЕсли;
Объект.Стоимость=ОриентировочнаяСтоимость;
Объект.Владелец=Ссылка;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗакрытияВопроса(Результат, Параметры)Экспорт
Если (Результат=КодВозвратаДиалога.Да)Тогда
Объект.КоличествоСвободныхМест=Объект.КоличествоМест;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
121
Процедура КоличествоМестОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора,
Параметры, СтандартнаяОбработка)
// Вставить содержимое обработчика.
Если(ЗначениеЗаполнено(Объект.Ссылка)=Ложь)Тогда
Оповещение=Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтотОбъект);
ПоказатьВопрос(Оповещение, "Установить количество свободных мест равным
общему количеству мест",
РежимДиалогаВопрос.ДаНет,0,КодВозвратаДиалога.Да,"EasyTravel",);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СоздатьДоговорНаТур(Команда)
Форма = ПолучитьФорму("Документ.Договор.ФормаОбъекта");
ДанныеФормыДоговора=Форма.Объект;
КодТурКПродаже=ЭтаФорма.Объект.Код;
ЗаполнитьДокументНаСервере(ДанныеФормыДоговора,КодТурКПродаже); //
Заполняем документ на сервере
КопироватьДанныеФормы(ДанныеФормыДоговора, Форма.Объект); // копируем наш
объект в объект формы и далее открываем ее
Форма.Открыть();
КонецПроцедуры
&НаСервереБезКонтекста
Функция ЗаполнитьДокументНаСервере(ДанныеФормы,КодТурКПродаже);
Док = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.Договор"));
// Получаем объект из данных формы ИЛИ
Док = Документы.Договор.СоздатьДокумент();
Док.Дата=ТекущаяДата();
Тур=Справочники.ТурыКПродаже.НайтиПоКоду(КодТурКПродаже);
Док.Тур=Тур;
Наименование=Тур.Тур.Наименование;
//ТурШаблон=Справочники.Туры.НайтиПоКоду(КодТурКПродаже);
Док.НаименованиеТура=Наименование;
Док.ДатаНачалаТура=Тур.НачалоТура;
Док.ДатаОкончанияТура=Тур.КонецТура;
Док.ЦенаТураОдинЧеловек=Тур.Стоимость;
Док.Оплачен=0;
ТЧДетализацияТура=Тур.Тур.Детализация;
Док.ДетализацияТура.Загрузить(ТЧДетализацияТура.Выгрузить());
//Док.ДетализацияТура=Тур.Тур.Детализация;
ЗначениеВДанныеФормы(Док,ДанныеФормы);
КонецФункции
&НаСервере
Процедура СоздатьДоговорНаТурНаСервере(Тур)
// Вставить содержимое обработчика.
//Договор=Документы.Договор.СоздатьДокумент();
//Договор.Тур=Тур;
КонецПроцедуры
Модуль формы документа документа «Договор»
&НаКлиенте
122
Процедура КоличествоЧеловекПриИзменении(Элемент)
// Вставить содержимое обработчика.
ЦенаЗаОдного=Объект.ЦенаТураОдинЧеловек;
Количество=Объект.КоличествоЧеловек;
Итого=ЦенаЗаОдного*Количество;
Объект.ЦенаТура=Итого;
КонецПроцедуры
&НаКлиенте
Процедура СписокТуристовПриИзменении(Элемент)
// Вставить содержимое обработчика.
Количество=Объект.СписокТуристов.Количество();
Объект.КоличествоЧеловек=Количество;
КоличествоЧеловекПриИзменении(Элемент);
ПересчитатьЦенуДоговора();
КонецПроцедуры
&НаКлиенте
Процедура ПересчитатьЦенуДоговора()
ЦенаТура=Число(Объект.ЦенаТура);
ЦенаДоговора=ЦенаТура;
ТЧУслуги=Объект.Услуги;
Для каждого СтрокаТЧУслуги из ТЧУслуги Цикл
//ЦенаУслуги=СтрокаТЧУслуги.Цена;
//КоличествоУслуги=СтрокаТЧУслуги.Количество;
ИтогоУслуги=Число(СтрокаТЧУслуги.Итого);
ЦенаДоговора=ЦенаДоговора+ИтогоУслуги;
КонецЦикла;
Итого=ЦенаДоговора;
Объект.Итого=Итого;
Объект.Задолженность=Итого-Число(Объект.Оплачен);
КонецПроцедуры
&НаКлиенте
Процедура СписокТуристовВыбор(Элемент, ВыбраннаяСтрока, Поле,
СтандартнаяОбработка)
Если (Строка(Поле.Имя)="СписокТуристовНомерСтроки")Тогда
СтандартнаяОбработка=Ложь;
ТекущаяСтрока=Элемент.ТекущиеДанные;
ФИО=ТекущаяСтрока.ФИО;
ФормаКлиента=ПолучитьФорму("Справочник.Клиенты.ФормаОбъекта");
ДанныеФормыКлиента=ФормаКлиента.Объект;
СписокТуристовВыборНаСервере(ДанныеФормыКлиента,ФИО);
КопироватьДанныеФормы(ДанныеФормыКлиента,ФормаКлиента.Объект);
ФормаКлиента.Открыть();
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция СписокТуристовВыборНаСервере(ДанныеФормы, ФИО)
// Вставить содержимое обработчика.
Спр=ДанныеФормыВЗначение(ДанныеФормы, Тип("СправочникОбъект.Клиенты"));
Клиент=Справочники.Клиенты.НайтиПоНаименованию(ФИО);
123
Спр=Клиент.ПолучитьОбъект();
Спр.Наименование=Клиент.Наименование;
ЗначениеВДанныеФормы(Спр, ДанныеФормы);
КонецФункции
&НаКлиенте
Процедура УслугиУслугаПриИзменении(Элемент)
//ТЧУслуги=Объект.Услуги:
СтрокаТЧ=Элементы.Услуги.ТекущиеДанные;
УслугаНаименование=СтрокаТЧ.Услуга;
Цена=ПолучитьЦенуУслуги(УслугаНаименование);
СтрокаТЧ.Цена=Цена;
Если(ЗначениеЗаполнено(СтрокаТЧ.Количество)=Ложь) Тогда
СтрокаТЧ.Количество=1;
КонецЕсли;
Итого=Цена*СтрокаТЧ.Количество;
СтрокаТЧ.Итого=Итого;
ПересчитатьЦенуДоговора();
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьЦенуУслуги(УслугаНаименование)
Услуга=Справочники.Услуги.НайтиПоНаименованию(УслугаНаименование);
Цена=Услуга.Цена;
Возврат Цена;
// Вставить содержимое обработчика.
КонецФункции
&НаКлиенте
Процедура УслугиКоличествоПриИзменении(Элемент)
// Вставить содержимое обработчика.
СтрокаТЧ=Элементы.Услуги.ТекущиеДанные;
Цена=СтрокаТЧ.Цена;
Количество=СтрокаТЧ.Количество;
Итого=Цена*Количество;
СтрокаТЧ.Итого=Итого;
ПересчитатьЦенуДоговора();
КонецПроцедуры
&НаКлиенте
Процедура УслугиЦенаПриИзменении(Элемент)
// Вставить содержимое обработчика.
СтрокаТЧ=Элементы.Услуги.ТекущиеДанные;
Цена=СтрокаТЧ.Цена;
Количество=СтрокаТЧ.Количество;
Итого=Цена*Количество;
СтрокаТЧ.Итого=Итого;
ПересчитатьЦенуДоговора();
КонецПроцедуры
&НаКлиенте
Процедура ОплаченоПриИзменении(Элемент)
// Вставить содержимое обработчика.
Итого=Число(Объект.Итого);
Оплачено=Число(Объект.Оплачен);
Задолженность=Итого-Оплачено;
Если(Задолженность<0)Тогда
Оповещение=Новый
ОписаниеОповещения("ПослеЗакрытияПредупреждения",ЭтотОбъект);
124
ПоказатьПредупреждение(Оповещение,"Вы не можете внести сумму оплаты,
большую, чем задолженность по договору",0,"EasyTravel");
Иначе
Объект.Задолженность=Задолженность;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗакрытияПредупреждения(Элемент)Экспорт
Итого=Число(Объект.Итого);
Задолженность=Число(Объект.Задолженность);
Оплачено=Итого-Задолженность;
Объект.Оплачен=Оплачено;
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьСообщение(Команда)
ПоказатьСообщениеНаСервере();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПоказатьСообщениеНаСервере()
// Вставить содержимое обработчика.
КонецПроцедуры
Модуль объекта документа «Договор»
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
// Вставить содержимое обработчика.
Префикс="Д-";
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// Вставить содержимое обработчика.
КоличествоЧеловек=Число(ЭтотОбъект.КоличествоЧеловек);
КоличествоСвободныхМест=Число(ЭтотОбъект.Тур.КоличествоСвободныхМест);
Если(КоличествоЧеловек>КоличествоСвободныхМест)Тогда
Отказ=Истина;
Сообщить("Вы не можете оформить данный договор, т.к. недостаточно
свободных мест");
Иначе
ТурКод=ЭтотОбъект.Тур.Код;
ТурВДоговоре=Справочники.ТурыКПродаже.НайтиПоКоду(ТурКод).ПолучитьОбъект();
ТурВДоговоре.КоличествоСвободныхМест=КоличествоСвободныхМест-
КоличествоЧеловек;
ТурВДоговоре.Записать();
КонецЕсли;
КонецПроцедуры
Процедура ПослеЗакрытияПредупреждения(Элемент)Экспорт
КонецПроцедуры
Процедура ОбработкаУдаленияПроведения(Отказ)
125
// Вставить содержимое обработчика.
КоличествоЧеловек=Число(ЭтотОбъект.КоличествоЧеловек);
КоличествоСвободныхМест=Число(ЭтотОбъект.Тур.КоличествоСвободныхМест);
ТурКод=ЭтотОбъект.Тур.Код;
ТурВДоговоре=Справочники.ТурыКПродаже.НайтиПоКоду(ТурКод).ПолучитьОбъект();
ТурВДоговоре.КоличествоСвободныхМест=КоличествоСвободныхМест+КоличествоЧелове
к;
ТурВДоговоре.Записать();
КонецПроцедуры

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Agile-методология в управлении проектами на примере ООО «Ресурсный центр «Академия КлассИнфо»
Aвтoмaтизaция пpoцecca вeдeния инфopмaциoннoй бaзы o дoлжнocтяx и вaкaнcияx c укaзaниeм тpeбoвaний к уpoвню знaний и нaвыкoв кaндидaтoв для гpуппы кaдpoв вoйcкoвoй чacти 3474»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
Cовершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)
Event - менеджмент: реализация проекта (на примере ООО "АГРОПАК")