1. SQL / Говнокод #18426

    −84

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    BEGIN
    select count(*) INTO var FROM table_name;
    EXCEPTION WHEN OTHERS THEN 
    var:=0;
    END;

    Если что-то пойдет не так...
    P.S.: count() всегда возвращает какое-либо значение. Ошибке не откуда взяться.

    mishok, 01 Июля 2015

    Комментарии (9)
  2. SQL / Говнокод #18425

    −176

    1. 1
    and (ss_1<>'SS0001' or ss_1<>'SS0002' or ss_1<>'SS0010')

    Сегодня на продакшене было обнаружено гениальное выражение в одном из запросов.

    mishok, 01 Июля 2015

    Комментарии (49)
  3. C# / Говнокод #18424

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    public int MapToLowerPageBoundary(int rowIndex)
    {
           return (rowIndex / RowsPerPage) * RowsPerPage;
    }

    Нашел этот метод в проекте... Интересно о чем думал автор...

    alex493049469, 01 Июля 2015

    Комментарии (45)
  4. PHP / Говнокод #18423

    +142

    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
    <?php
    
    $self=$_SERVER['PHP_SELF'];
    
    if (isset($_GET['page'])) { $page=$_GET['page'];} else {$page=1;}
    
    $pages=25;
    $page_offset=5;
    $unique_links=9;
    
    if ($page != 1) { // Don't show back link if current page is first page.
    $back_page = $page-1;
    echo("<a href=\"$self?page=$back_page\">prev</a>    \n");}
    
    for ($i=1; $i <= $pages; $i++)  {
    
    if ($i == $page) {
     echo("<b>$i</b>\n");// If current page don't give link, just text.
     }  else {
    
    if (($i>$page-$page_offset) && ($i<$page+$page_offset)  && ($page>$page_offset)) {	
    echo("<a href=\"$self?page=$i\">$i</a> \n");
    } 
    elseif (($i<=$unique_links) && ($page<=$page_offset)) {
    	echo("<a href=\"$self?page=$i\">$i</a> \n");
    }
    elseif (($i>$pages-$unique_links) && ($page>$pages-$page_offset)) {
    echo("<a href=\"$self?page=$i\">$i</a> \n");	
    }
    
    }
    
    }
    
    if (!($page >= $pages) && $pages != 1) { // If last page don't give next link.
    $next_page = $page + 1;
    echo("<a href=\"$self?page=$next_page\">next</a>");}
    
    
    ?>

    Адовый аромат (хоть и рабочий), понимаю, но помогите упростить, пожалуйста. Условия внутри цикла скорее всего избыточны.
    Вкратце: "плавающий" пагинатор, 9 уникальных ссылок.

    nurfed362, 30 Июня 2015

    Комментарии (18)
  5. JavaScript / Говнокод #18422

    +143

    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
    if($scope.model.table){ 
    
                if($scope.model.table.cells == null){
                    if($scope.model.table.cols){
                        $scope.model.table.cells = $scope.model.table.cols;
                    }
                }
                if($scope.model.table.heads && $scope.model.table.cols == null){
                    $scope.model.table.cols = [];
                    $scope.model.table.heads.forEach(function(head){
                        $scope.model.table.cols.push({head:head});
                    });
                    $scope.model.table.cells.forEach(function(cell, i){
                        $scope.model.table.cols[i] = {cell:cell};
                    });
                }
            }

    Andruxa, 30 Июня 2015

    Комментарии (0)
  6. Java / Говнокод #18421

    +66

    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
    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
    Map<Organization, Collection<IFormula>> comissionFormulasMap = getComissionFormulae(bank, service, a);
                transIterator:
                for (Transaction T : afterBillingMemorandum) {//для каждой транзакции
    
                    if (comissionFormulasMap.isEmpty()) {
                        //System.out.println("Нет формулы для комиссии");
                        afterComissionSet.add(T); //если нет формулы для определения комиссии транзакция попадает в список на расщепление
                    } else {
                        BigDecimal transactionStartValue = T.getStartValue();
                        Set<Transaction> afterComissionForCurrent = new HashSet<>();
                        BigDecimal fullTax = BigDecimal.ZERO;
                        Collection<IFormula> comissionsAKT = new LinkedList<>();
    
                        for (Map.Entry<Organization, Collection<IFormula>> comissionsByBank : comissionFormulasMap.entrySet()) {
                            Organization comissionBank = comissionsByBank.getKey();
                            for (IFormula f : comissionsByBank.getValue()) {//для каждой формулы по комиссии
                                GeneratedTransactionTypes transactionType = f.getGeneratedTransactionTypes(comissionBank);
    
                                if (transactionType == GeneratedTransactionTypes.AKT) {
                                    comissionsAKT.add(f);
                                } else {
                                    BigDecimal commie = f.commission(transactionStartValue);//Определяем значение комиссии
                                    if (commie.compareTo(BigDecimal.ZERO) == 0)
                                        continue; //Комиссия 0 нам не интересна, переходим к следующей формуле
                                    fullTax = fullTax.add(commie);//складываем комиссии
                                    if (fullTax.compareTo(transactionStartValue) == 1) {
                                        log.error("Помилка зняття комісії. Сума комісій більша 100 %. Транзакція не буде оброблена. Транзакція: {}", T.toBaseString());
                                        continue transIterator;
                                    } else {
                                        afterComissionForCurrent.add(T.getComissionTransaction(f.getOrganization(), commie, transactionType));
                                    }
                                }
                            }
                        }
    //
    //                    afterComissionSet.addAll(afterComissionForCurrent);
    //                    afterComissionForCurrent.clear();
    
                        //Далі зняття по акту
                        BigDecimal afterComissionStartValue = transactionStartValue.subtract(fullTax);
                        BigDecimal aktFullTax = BigDecimal.ZERO;
                        for (IFormula f : comissionsAKT) {
                            GeneratedTransactionTypes transactionType = GeneratedTransactionTypes.AKT;
    
                            BigDecimal commie = f.commission(afterComissionStartValue);
                            if (commie.compareTo(BigDecimal.ZERO) == 0)
                                continue;
                            BigDecimal newFullTax = aktFullTax.add(commie);
                            if (newFullTax.compareTo(afterComissionStartValue) > 0) {
                                continue;
                            }
                            aktFullTax = newFullTax;
                            afterComissionForCurrent.add(T.getComissionTransaction(f.getOrganization(), commie, transactionType));
                        }
    
    
                        afterComissionSet.add(T.getRestTransaction(fullTax.add(aktFullTax)));
                        afterComissionSet.addAll(afterComissionForCurrent);
                    }
                }

    Писал один товарещ, притом взрослый и сформировавшийся как личность )

    ekh, 30 Июня 2015

    Комментарии (2)
  7. SQL / Говнокод #18420

    −160

    1. 1
    2. 2
    ALTER TABLE db.table ADD CONSTRAINT cu_contents UNIQUE (contents(128));
    ALTER TABLE db.table DROP INDEX cu_contents;

    Создал констрейнт, удал индекс. Загадки Майсиквела.

    wvxvw, 30 Июня 2015

    Комментарии (51)
  8. PHP / Говнокод #18419

    +167

    1. 1
    2. 2
    if ($result = mailer($data)) echo "<p>Коммерческое предложение отправлено к вам на электронную почту.</p>";
    else echo "<p>Коммерческое предложение отправлено к вам на электронную почту.</p>";//да простит меня Бог

    Ковыряю сайта заказчика. Нашел гениальный код в скрипте обработки формы.

    jankefir, 30 Июня 2015

    Комментарии (125)
  9. Java / Говнокод #18418

    +69

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private static <T extends Contract> Class getClazz(T contract) {
            return contract instanceof ContractLease ? ContractLease.class :
                    contract instanceof ContractPlantsSale ? ContractPlantsSale.class :
                            contract instanceof ContractForestWorks ? ContractForestWorks.class :
                                    contract instanceof ContractPermanent ? ContractPermanent.class :
                                            contract instanceof ContractForestDeclaration ? ContractForestDeclaration.class :
                                                    contract instanceof ContractReport ? ContractReport.class : null;

    Обожаю такие штуки, такая красивая лесенка...

    floppy, 30 Июня 2015

    Комментарии (0)
  10. PHP / Говнокод #18417

    +142

    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
    $vin = trim(strip_tags($_POST['param']));
    
    function parse_html_page($vin)
    {
    	$vin_check = file_get_contents("http://***.****.**/*****.html?vin=".$vin);
    	$parts = explode("<div id=\"vin-block\">", $vin_check);
    	$parts_2 = explode("<footer id=\"footer\">", $parts[1]);
    	$parts_3 = explode("vehicles.</dd></dl>", $parts_2[0]);
    	$parts_4 = explode("<div class=\"hr-bold-se\"></div>", $parts_3[0]);
    	
    	if($parts_4[2])
    	{
    	echo("<h1>Данные:</h1>".$parts_4[2]."</dd></dl></div>");
    	}
    	else { echo "<b>Данные не найдены, либо VIN-номер некорректен!</b>";}
    }

    Крутейший парсинг...

    kraldraav, 29 Июня 2015

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