- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 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;
}
в этом коде прекрасно все (имена и типы переменных, жестокое обращение с датами, чуть менее жестокое обращения с "флажками", соединение с Ораклом, которое открывается где-то за пределами вселенной и не закрывается нигде, и еще много всего)...
дочитав этот шедевр до строчки //ТУТ ПЕРЕДЕЛАТЬ ВСЕ, просто невозможно не прослезиться...