1. C# / Говнокод #18089

    +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
    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
    public List<MainTZInfoVO> GetMyJobs(bool flag1, bool flag2, bool flag3, bool flag4, string date1, string date2)
    {
        List<MainTZInfoVO> ulist = new List<MainTZInfoVO>();  // список заданий пользователя
        string sIdUser = usr.GetUserOrAssistansID().ToString();   // ID пользователя
        
        //выданы мне задания
        string sql1 = "select ID_TZ as ID, DATE_VYD, DESCR, SODER, STATUS||' '||CASE WHEN NVL(LAST_TZ,'0')=1 THEN chr(10)||' !Последнее' END as STATUS, '1' as NOT_RECEIVED from tz_all_jobs where (trim(id_ispol) like '%,'||'" + sIdUser + "'||',%' or trim(id_ispol) like '" + sIdUser + "'||',%') and (status='Выдано' or status = 'Отклонено частично') and nvl(id_prin,' ') not like  '%,'||'" + sIdUser + "'||',%' and  nvl(id_prin,' ') not like '" + sIdUser + "'||',%' and nvl(id_otkl,' ') not like  '%,'||'" + sIdUser + "'||',%' and  nvl(id_otkl,' ') not like '" + sIdUser + "'||',%'";
        //принятые мной, не рассмотренные другими
        string sql2 = "select ID_TZ as ID, DATE_VYD, DESCR, SODER, STATUS||' '||CASE WHEN NVL(LAST_TZ,'0')=1 THEN chr(10)||' !Последнее' END as STATUS, '0' as NOT_RECEIVED from tz_all_jobs where (status='Выдано' or status = 'Отклонено частично') and (nvl(id_prin,' ')  like  '%,'||'" + sIdUser + "'||',%' or  nvl(id_prin,' ')  like '" + sIdUser + "'||',%' or nvl(id_otkl,' ')  like  '%,'||'" + sIdUser + "'||',%' or  nvl(id_otkl,' ')  like '" + sIdUser + "'||',%')";
        //выданные мне в статусе отклонено
        string sql3 = "select ID_TZ as ID, DATE_VYD, DESCR, SODER, STATUS||' '||CASE WHEN NVL(LAST_TZ,'0')=1 THEN chr(10)||' !Последнее' END as STATUS, '2' as NOT_RECEIVED from tz_all_jobs where  (id_ispol like '%,'||'" + sIdUser + "'||',%' or id_ispol like '" + sIdUser + "'||',%') and (status='Отклонено' or status='Аннулировано')";
        //ограничение по дате
        string sql4 = "date_vyd between to_date('" + date1 + "','DD.MM.YYYY') and to_date('" + date2 + "','DD.MM.YYYY')";
        string sql = " ";
        //формируем sql-ку по флажкам, которые передаем в функцию
        if (flag1 == true)
        {
            sql = sql1;
        }
        if (flag2 == true)
        {
            if (sql.Length > 1)
            {
                sql = sql + " union " + sql2;
            }
            else
            {
                sql = sql2;
            }
        }
        if (flag3 == true)
        {
            if (sql.Length > 1)
            {
                sql = sql + " union " + sql3;
            }
            else
            {
                sql = sql3;
            }
        }
        if ((flag4 == true) & (sql.Length > 1))
        {
            sql = "select * from (" + sql + ") tabl where " + sql4;
        }
        sql = sql + " order by date_vyd desc";
    
        OracleCommand cmd = new OracleCommand(sql, connection);
        OracleDataReader reader = cmd.ExecuteReader();
        //ТУТ ПЕРЕДЕЛАТЬ ВСЕ
        /*заполнение полей из ридера*/
        while (reader.Read())
        {
            //...
        }
        return ulist; 
    }

    в этом коде прекрасно все (имена и типы переменных, жестокое обращение с датами, чуть менее жестокое обращения с "флажками", соединение с Ораклом, которое открывается где-то за пределами вселенной и не закрывается нигде, и еще много всего)...
    дочитав этот шедевр до строчки //ТУТ ПЕРЕДЕЛАТЬ ВСЕ, просто невозможно не прослезиться...

    Запостил: svetkeen, 29 Апреля 2015

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

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

    Ошибка компиляции комментария:
    1. Гости могут высказаться только в понедельник, среду, четверг или воскресение
    ava Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:
    А не использовать ли нам bbcode?
    • [b]жирный[/b] — жирный
    • [i]курсив[/i] — курсив
    • [u]подчеркнутый[/u] — подчеркнутый
    • [s]перечеркнутый[/s] — перечеркнутый
    • [blink]мигающий[/blink] — мигающий
    • [color=red]цвет[/color] — цвет (подробнее)
    • [size=20]размер[/size] — размер (подробнее)
    • [code=<language>]some code[/code] (подробнее)
    Проверочный код