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

    −169

    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
    DECLARE @IsPerson BIT  
     ,@ContactTypeID INT  
    
     SET @ContactTypeID = CASE WHEN @IsPerson = 0 THEN 3 ELSE 4 END  
    
     IF (LEN(ISNULL(@FirstName,'')) <= 0 AND LEN(ISNULL(@LastName,'')) <= 0 AND (LEN(@EntityName) > 0 OR LEN(@TradingAs) > 0))  
     BEGIN  
      SET @IsPerson = 0  
     END   
     ELSE  
     BEGIN  
      SET @IsPerson = 1  
     END

    Такая себе Stored Procedure...
    Magic numbers - это всё фигня. Меня всегда интересовало, почему тип контакта всегда 4?
    И, да, строки идут именно в такой очерёдности.

    Запостил: kore_sar, 28 Февраля 2013

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

    • *Ванга моде он*
      3 - контракт с физ.лицами, 4 - контракт с юр.лицами?
      > Меня всегда интересовало, почему тип контакта всегда 4?
      Ну забыл человек присвоить значение @IsPerson, с кем не бывает. Особенно на продакшине.
      > LEN(ISNULL(@FirstName,'')) <= 0
      Длина меньше нуля? ммммкей :(
      > IF (LEN(ISNULL(@FirstName,'')) <= 0 AND LEN(ISNULL(@LastName,'')) <= 0 AND (LEN(@EntityName) > 0 OR LEN(@TradingAs) > 0))
      Уверен, что автор сего условия учел приоритет AND и OR
      В строках 7-13 можно и без бегин-ендов
      Ответить

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