1. PHP / Говнокод #21639

    −24

    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
    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
    /* -== Нормальная реализация этого пиздеца состоит из трех строк кода и  применима к числам любой разрядности ==- */
    <span style="font-size: .9em;">(минимально - <?php echo $group['цены']['base'][0]['price_min_dney'] ?> 
    <?php switch ($group['цены']['base'][0]['price_min_dney']) {
    	case 1: case 21: echo 'день'; break;
    	case 2: case 3: case 4: case 22: case 23: case 24: echo 'дня'; break;
    	case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: 
    	case 15: case 16: case 17: case 18: case 19: case 20: 
    	case 25: case 26: case 27: case 28: case 29: case 30: echo 'дней'; break; 
    } ?>)</span>
    
    /* -== Здесь же, запрос. Сначала мой коммент (не выдержал, так и ушел в коммит), ниже - коммент автора и сам запрос ==- */
    
    /**
     * О аллах, какой долбоеб это писал? период, блядь, входит в акцию, если либо его начало входит, либо конец. И пиздец. Два, блядь, условия!!!!
     * И нахуй тут case с join???
     * Нахуй вообще этот запрос, если у тебя, блядь, в кривом, но - все же - массиве! - рядом лежат ВСЕ ЦЕНЫ с периодами, бери и вытягивай.
     */
    
    // 1. период вошел слева акции
    // 2. период больше акции
    // 3. период вошел справа акции
    // 4. период в центре акции
    $akzia = model('db')->sql('SELECT * FROM ' . DBPREFIX . 'groups_prices as a
    	LEFT JOIN (SELECT price_id, case
    			when "' . date("Y-m-d", $dfrom) . '" < price_start and "' . date("Y-m-d", $dto) . '" >= price_start and "' . date("Y-m-d", $dto) . '" < price_finish
    				then datediff("' . date("Y-m-d", $dto) . '", price_start)
    			when "' . date("Y-m-d", $dfrom) . '" <= price_start and "' . date("Y-m-d", $dto) . '" >= price_finish
    				then datediff(price_finish, price_start)
    			when "' . date("Y-m-d", $dfrom) . '" < price_finish and "' . date("Y-m-d", $dfrom) . '" >= price_start and "' . date("Y-m-d", $dto) . '" >= price_finish
    				then datediff(price_finish, "' . date("Y-m-d", $dfrom) . '")
    			when "' . date("Y-m-d", $dfrom) . '" >= price_start and "' . date("Y-m-d", $dto) . '" < price_finish
    				then datediff("' . date("Y-m-d", $dto) . '", "' . date("Y-m-d", $dfrom) . '")
    	end as diff
    		from ' . DBPREFIX . '_groups_prices
    		where `group_id` = ' . $group['group_id'] . '
    			and `price_start` < "' . date("Y-m-d", $dto) . '"
    			and `price_finish` >= "' . date("Y-m-d", $dfrom) . '"
    	) as b USING (price_id)
    	WHERE
    		a.price_id = b.price_id
    		and a.price_for_people >= ' . $arg['order_for_people'] . '
    		and a.group_id = ' . $group['group_id'] . '
    		and a.price_start < "' . date("Y-m-d", $dto) . '"
    		and a.price_finish >= "' . date("Y-m-d", $dfrom) . '"
    		and b.diff >= a.price_min_dney
    	ORDER BY a.price_type
    ');

    Если когда-нибудь, где-нибудь, во сне или наяву, тебе приспичит написать что-то подобное - убейся головой об стену.
    А если не поможет - убейся снова и снова. Самостоятельно. Иначе тебя, блядь, когда-нибудь найдут и убьют нахуй насильно.

    Вопрос: а какой ценник выставили бы вы, если бы вам пришлось разгребать овердохуя кода, чуть более, чем совсем, состоящего из такого дерьма?
    Или здоровье дороже?

    Запостил: OhMainGod, 03 Ноября 2016

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

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