Бухгалтерия / Говнокод #27383 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
// Заполняет документ заказ данными с сайта.
// 
// Параметры:
//  ДокументОбъект - ДокументОбъект - объект документа Заказ покупателя.
//  РеквизитыЗаказа - Структура - содержит значения реквизитов заказа, загруженных с сайта:
//     * Ид - Идентификатор заказа, очень часто тоже что и номер.
//     * Дата				- дата создания заказа на сайте.
//     * Номер				- номер заказа на сайте.
//     * ДатаОтгрузки		- дата отгрузки товара по заказу.
//     * ВалютаДокументаКод	- трехзначный идентификатор валюты.
//     * ВидЦенНаименование	- наименование вида цены.
//     * СуммаВключаетНДС	- признак включения НДС.
//     * НаименованиеСкидки	- наименование скидки.
//     * ПроцентСкидки		- процент скидки.
//     * СуммаСкидки		- сумма скидки по заказу.
//     * СкладНаименование 	- наименование склада, точки самовывоза.
//     * ПодразделениеНаименование - наименование подразделения.
//     * Контрагент			- ссылка на контрагента, который уже был идентифицирован в базе.
//     * АдресДоставки      - строка адреса доставки.
//     * ТочкаСамовывоза	- ссылка на элемент справочника, который в прикладном решении является справочником точек самовывоза или Неопределено.
//     * Товары				- табличная часть документа.
//     * Комментарий		- текстовый комментарий.
//  СвойстваЗаказа - Соответствие - содержит строковое представления свойств (ключ) и значений (значение) заказа.
//  ПрикладныеПараметры - Структура - содержит параметры прикладного решения, добавленные на форму узла плана обмена.
//  ОписаниеОшибки - Строка - текстовое представление ошибки.
//  Успешно - Булево - признак заполнения документа.
//
Процедура ЗаполнитьЗаказ(ДокументОбъект, РеквизитыЗаказа, СвойстваЗаказа,
                         ПрикладныеПараметры, ОписаниеОшибки, Успешно) Экспорт
	//++ НЕ ГОСИС
	Валюта = Неопределено;
	ОбменССайтамиУТ.ОбработатьВалютуXML(Валюта, РеквизитыЗаказа.ВалютаДокументаКод);
	
	ДокументОбъект.Дата          = РеквизитыЗаказа.Дата;
	ДокументОбъект.Валюта        = Валюта;
	ДокументОбъект.Соглашение    = ПрикладныеПараметры.Соглашение;
	ДокументОбъект.Организация   = ПрикладныеПараметры.Организация;
	ДокументОбъект.Менеджер      = ПрикладныеПараметры.Менеджер;
	ДокументОбъект.Контрагент    = РеквизитыЗаказа.Контрагент;
	ДокументОбъект.Партнер       = РеквизитыЗаказа.Партнер;
	ДокументОбъект.ЦенаВключаетНДС = РеквизитыЗаказа.СуммаВключаетНДС;
	ДокументОбъект.Склад           = ?(ЗначениеЗаполнено(РеквизитыЗаказа.ТочкаСамовывоза),
	                                   РеквизитыЗаказа.ТочкаСамовывоза, 
	                                   ПрикладныеПараметры.Склад);
	
	УсловияПродаж = ПродажиСервер.ПолучитьУсловияПродаж(ПрикладныеПараметры.Соглашение);
	
	Если НЕ ЗначениеЗаполнено(УсловияПродаж.ИспользуютсяДоговорыКонтрагентов) 
		ИЛИ НЕ УсловияПродаж.ИспользуютсяДоговорыКонтрагентов Тогда
		ДокументОбъект.ПорядокОплаты = УсловияПродаж.ПорядокОплаты;
	Иначе
		ДокументОбъект.ПорядокОплаты = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОбъект.Договор, "ПорядокОплаты");
	КонецЕсли;
	
	ДокументОбъект.ВернутьМногооборотнуюТару = УсловияПродаж.ВозвращатьМногооборотнуюТару;
	ЗаполнитьЗначенияСвойств(ДокументОбъект,
	                         УсловияПродаж,
	                        "ХозяйственнаяОперация, ГруппаФинансовогоУчета,
	                        |ТребуетсяЗалогЗаТару, ФормаОплаты, ГрафикОплаты");
	Если ЗначениеЗаполнено(ДокументОбъект.ГрафикОплаты) Тогда
		ДокументОбъект.ФормаОплаты = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОбъект.ГрафикОплаты, "ФормаОплаты");
	КонецЕсли;
	
	ДокументОбъект.ВернутьМногооборотнуюТару = УсловияПродаж.ВозвращатьМногооборотнуюТару;
	ДокументОбъект.Приоритет = Справочники.Приоритеты.ПолучитьПриоритетПоУмолчанию(ДокументОбъект.Приоритет);
	Если УсловияПродаж.ИспользуютсяДоговорыКонтрагентов Тогда
		
		ДокументОбъект.Договор = ПродажиСервер.ПолучитьДоговорПоУмолчанию(ДокументОбъект,
		                                                                  УсловияПродаж.ХозяйственнаяОперация,
		                                                                  Валюта);
		
		Если ЗначениеЗаполнено(ДокументОбъект.Договор) Тогда
			ДокументОбъект.НалогообложениеНДС = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОбъект.Договор,
				"НалогообложениеНДС");
		КонецЕсли;
		
	КонецЕсли;
	
	Если НЕ ЗначениеЗаполнено(ДокументОбъект.НалогообложениеНДС) Тогда
		ДокументОбъект.НалогообложениеНДС = Справочники.Организации.НалогообложениеНДС(
			ДокументОбъект.Организация,
			ДокументОбъект.Склад,
			ДокументОбъект.Дата);
	КонецЕсли;
	
	Комментарий = "";
	Если Не ПустаяСтрока(РеквизитыЗаказа.Комментарий) Тогда
		Комментарий = Комментарий + НСтр("ru = 'Комментарий менеджера на сайте'") + ": " +РеквизитыЗаказа.Комментарий;
	КонецЕсли;
	
	КомментарийПокупателя = СвойстваЗаказа.Получить("Комментарии покупателя");
	Если Не КомментарийПокупателя = Неопределено И Не ПустаяСтрока(КомментарийПокупателя) Тогда
		Комментарий = Комментарий + ?(ПустаяСтрока(Комментарий),"",Символы.ПС) + НСтр("ru = 'Комментарий покупателя на сайте'") + ": " + КомментарийПокупателя;
	КонецЕсли;
	
	ДокументОбъект.Комментарий   = Комментарий;
	
	СтатусЗаказа = СвойстваЗаказа.Получить("Статус заказа");

Запостил: 0x255 0x255, (Updated )

Комментарии (0) RSS

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8