1. JavaScript / Говнокод #4315

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    function ValidateTimeData(Dataset) {
    	var HoursVal = 0;
    	var MinutesVal = 0;
    	
    	//Забираем значения из формы
    	HoursVal = edtTaskHours.Value;
    	MinutesVal = edtTaskMinutes.Value;
    	
    	if ( HoursVal == 0 && MinutesVal == 0 ) {
    		ShowWarningDialog("Поля 'Время (часы)' и 'Время (минуты)' обязательны для заполнения");	
    		return false;
    	} else {
    		return true;
    	}
    	
    	//Присваиваем время
    	Dataset.Values('ActualDurationHours') = HoursVal;
    	Dataset.Values('ActualDurationMinutes') = MinutesVal;
    	
    	Dataset.Values('PayedHours') = HoursVal;
    	Dataset.Values('PayedMinutes') = MinutesVal;
    	
    	Dataset.Values('ConfirmHours') = HoursVal;
    	Dataset.Values('ConfirmMinutes') = MinutesVal;
    	
    	Dataset.Values('Duration') = HoursVal * 60 + MinutesVal;
    	Dataset.Values('ActualDuration') = HoursVal * 60 + MinutesVal;	
    }

    Я бы еще оооочень долго разбирался, почему значения не присваиваются, если бы не посмотрел повнимательнее в 13 строчку :)

    Запостил: cyrill, 08 Октября 2010

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

    • LOL сам пару раз умудрялся такое писать.

      и блин сложно же заметить - код то /корректный/! ;)
      Ответить
    • я, наверное, забыл JavaScript, но как можно писать такое, как в 17-27 строчках?
      Ответить
      • Это, скорее, не Javascript.
        Ответить
        • Это именно Javascript. Используется в дебрях одной CRM-системы.
          Ответить
          • Тогда можете пояснить строчки 17-27?
            Моя единственная догадка:
            var a = 2;
            function rrr() {
            	return a;
            }
            rrr() = 2;
            alert(a);

            даёт Invalid left-hand side in assignment.
            Ответить
          • прототипы, конечно, многое позволяют, но не присваивать константам (чем и должно являться возвращаемое значение). Был бы какой-нибудь дотнет, я бы еще предположил перегрузку операторов, но это....
            Ответить
    • .
      Ответить
    • Хм.. Странный у вас джаваскритп или я далёк?
      Ответить
      • Это Javascript. 17-27 строки - специфичны для CRM, в которой он применяется.
        Ответить
        • там собственный парсер, или как такое реализовывается?
          Ответить
          • Сорри. Чуть наврал - это JScript - там такие фокусы прокатывают.
            Ответить
            • тогда все может быть. Видимо, там тоже может быть перегрузка операторов
              Ответить
    • "специфичная херня" не падает потому что заткнуто ретурном?
      Ответить

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