- 1
- 2
- 3
- 4
- 5
- 6
- 7
if (count($arResult[$j]["DATA"])!=1) $btw_max = count($arResult[$j]); else $btw_max = 0;
if ($btw_max ==2) $btw_max =1;
for ($k=0;$k<$btw_max;$k++){...}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+165
if (count($arResult[$j]["DATA"])!=1) $btw_max = count($arResult[$j]); else $btw_max = 0;
if ($btw_max ==2) $btw_max =1;
for ($k=0;$k<$btw_max;$k++){...}
Суть проблемы, есть массив $arResult[$j]["DATA"], последний элемент которого лишний, его выводить не надо, для этого чувак сделал следующее
Вместо того, чтобы это значения не добавлять в массив при его заполнении, либо исключив последний элемент при выводе. В общем труЪ говнокод :D
+112
sSQLTitle := 'SELECT CASE WHEN (VTSS.WRKORDNO IS NOT NULL)'
+' THEN VTSS.WRKORDNO ELSE VTW.WRKORDNO END AS '''+RSNumDok+''','
+' CASE WHEN (VTSS.GRECNO IS NOT NULL) THEN VTSS.GRECNO ELSE VTW.GRECNO END AS '''+RSSchet+''','
+' CASE WHEN (VTSS.STYPE IS NOT NULL) THEN VTSS.STYPE ELSE VTW.STYPE END AS '''+RSDocType+''','
+' CASE WHEN (VTSS.ServD IS NOT NULL) THEN VTSS.ServD ELSE VTW.ServD END AS '''+RSOpen+''','
+' CASE WHEN (VTSS.BILLD IS NOT NULL) THEN VTSS.BILLD ELSE VTW.BILLD END AS '''+RSClose+''','
+' CASE WHEN (VTSS.FULLNAME IS NOT NULL) THEN VTSS.FULLNAME ELSE VTW.FULLNAME END AS '''+RSClient+''','
+' CASE WHEN (VTSS.PAYNAME IS NOT NULL) THEN VTSS.PAYNAME ELSE VTW.PAYNAME END AS '''+RSPlatelwik+''','
+' CASE WHEN (VTSS.VIN IS NOT NULL) THEN VTSS.VIN ELSE VTW.VIN END AS '''+RSVIN+''','
+' CASE WHEN (VTSS.GNUMER IS NOT NULL) THEN VTSS.GNUMER ELSE VTW.GNUMER END AS '''+RSGosNomer+''','
+' CASE WHEN (VTSS.HSMANID IS NOT NULL) THEN VTSS.HSMANID ELSE VTW.HSMANID END AS '''+RSOtvetstv+''','
+' CASE WHEN (VTSS.LBACK IS NOT NULL) THEN VTSS.LBACK ELSE VTW.LBACK END AS '''+RSReturn+''','
+' VTSS.FULLSUMMA AS '''+RSSumItems+''','
+' VTW.SUMMA AS '''+RSSumWork+'''';
with DataMdl.adsADODataSet do
begin
Active := false;
if rbAllDate.Checked then
{$REGION 'Поиск по всем датам'}
case rgZakazType.ItemIndex of
0: //поиск по открытым заказ-заявкам
CommandText:=sSQLTitle
+' FROM'
+' (SELECT VTS.WRKORDNO,'
(...)
+' SUM(SUMMA) AS FULLSUMMA'
+' FROM'
+' (SELECT GS.WRKORDNO,'
+' GB.GRECNO,'
+ sSQLCase
+' CONVERT(varchar(10), GS.ServD, 104) AS ServD,'
+' CONVERT(varchar(10), GB.BILLD,104) AS BILLD,'
+' CASE'
+' WHEN C.FNAME IS NULL THEN C.LNAME'
+' WHEN C.LNAME IS NULL THEN C.FNAME'
+' ELSE C.FNAME+'' ''+C.LNAME'
+' END AS FULLNAME,'
// +' C.LNAME + '' '' + C.FNAME AS FULLNAME,'
+' CS.PNAME AS PAYNAME,'
+' V.SERIALNO AS VIN,'
+' V.LicNo AS GNUMER,'
+' GB.HSMANID,'
+' CASE WHEN (GS.CREDIT IS NULL)OR (GS.CREDIT <> 1) THEN NULL ELSE '''+RSReturn+''' END AS LBACK,'
+' GW.NAME,'
+' SUM(GW.ORDNUM) AS '''+RSQuantity+''','
+' SUM(GW.ORDNUM)*GW.UNITPR AS SUMMA'
+' FROM GSAL'+sPostfix+' GS LEFT OUTER JOIN'
+' GROW'+sPostfix+' GW ON (GS.GSALID = GW.GSALID) LEFT OUTER JOIN'
+' GBIL'+sPostfix+' GB ON (GS.GSALID = GB.GSALID) LEFT OUTER JOIN'
+' VEHI V ON (GS.VEHIID = V.VEHIID) LEFT OUTER JOIN'
+' CUST C ON (GS.CUSTNO = C.CUSTNO) RIGHT OUTER JOIN'
+' (SELECT CustNo, Lname + '' '' + FNAME AS PNAME'
+' FROM CUST WITH (NOLOCK))'
+' CS ON (GB.CUSTNO = CS.CUSTNO)'
+' WHERE (GS.STATUS = ''A'') AND (GW.RTYPE IN (1,2))' +sSQLWhere
+' GROUP BY GW.ITEM, GW.NAME, GW.UNITPR,'
+' GS.WRKORDNO, GB.Grecno, GS.ServD, GB.BILLD, C.LNAME, C.FNAME,'
+' CS.PNAME, V.SERIALNO, V.LicNo, GB.HSMANID, GS.CREDIT, GW.RECMTIME, GS.STYPE)'
+' VTS'
+' CASE WHEN (GS.CREDIT IS NULL)OR (GS.CREDIT <> 1) THEN NULL ELSE '''+RSReturn+''' END AS LBACK,'
+' GW.NAME,'
+' SUM(GW.ORDNUM) AS '''+RSQuantity+''','
+' SUM(GW.ORDNUM)*GW.UNITPR AS SUMMA'
+' FROM GSAL'+sPostfix+' GS LEFT OUTER JOIN'
+' GROW'+sPostfix+' GW ON (GS.GSALID = GW.GSALID) LEFT OUTER JOIN'
+' GBIL'+sPostfix+' GB ON (GS.GSALID = GB.GSALID) LEFT OUTER JOIN'
+' VEHI V ON (GS.VEHIID = V.VEHIID) LEFT OUTER JOIN'
+' CUST C ON (GS.CUSTNO = C.CUSTNO) RIGHT OUTER JOIN'
+' (SELECT CustNo, Lname + '' '' + FNAME AS PNAME'
...
... и так далее. НАПИСАНО ВРУЧНУЮ! Всего 420 строк, 4 подзапроса, связанных через full outer join. 16 тысяч записей 4-x ядерный mssql server обрабатывал таким образом минуты две. Я уж промолчу, как он по строкам в Delphi разбит...
Два дня врубался, как оно работает, переписал за два часа. 58 строк, включая каждое поле из select с новой строки :)
+104
if doc_lang='UA' then filename:=ExtractFileDir(Application.ExeName)+'/docs/sales_slip_MS_UA.xlt';
if doc_lang='RU' then filename:=ExtractFileDir(Application.ExeName)+'/docs/sales_slip_MS_RU.xlt';
Классика жанра, и так пол проги((((((
+117
private XmlNode GetListItemsXML(bool _flag, string _param, SPList _list)
{
SPQuery oEmptyQuery = new SPQuery();
SPListItemCollection spliColl;
XmlReaderSettings sett = new XmlReaderSettings();
Stream stream;
XmlReader reader;
XmlDocument listItems = new XmlDocument();
string str = "";
try
{
switch (_flag)
{
case true:
//select division
oEmptyQuery.Query = "<Where><Eq><FieldRef Name=\"URL\"/><Value Type=\"Text\">" + _param + "</Value></Eq></Where>";
spliColl = _list.GetItems(oEmptyQuery);
str = c_my_headFile + spliColl.Xml;
str.Replace("\r\n", "");
stream = new MemoryStream(new UTF8Encoding(true).GetBytes(str));
sett.ConformanceLevel = ConformanceLevel.Auto;
reader = XmlReader.Create(new StringReader(str), sett);
listItems.LoadXml(str);
return listItems.SelectSingleNode("xml").ChildNodes[1].ChildNodes[0];
//return listItems.SelectSingleNode("xml").ChildNodes[1];
case false:
//select articles
//_x0420__x0430__x0437__x0434__x04
oEmptyQuery.Query = "<Where><Eq><FieldRef Name=\"_x0420__x0430__x0437__x0434__x04\" LookupId=\"TRUE\" /><Value Type=\"Lookup\">" + _param + "</Value></Eq></Where>";
spliColl = _list.GetItems(oEmptyQuery);
str = c_my_headFile + spliColl.Xml;
str.Replace("\r\n", "");
stream = new MemoryStream(new UTF8Encoding(true).GetBytes(str));
sett.ConformanceLevel = ConformanceLevel.Auto;
reader = XmlReader.Create(new StringReader(str), sett);
listItems.LoadXml(str);
//return listItems.SelectSingleNode("xml").ChildNodes[1].ChildNodes[0];
return listItems.SelectSingleNode("xml").ChildNodes[1];
}
}
catch (XmlException)
{
return null;
}
catch (Exception)
{
return null;
}
return null;
}
Метод, у которого говорящая сигнатура. Увидев ее можно сразу понять что делает этот мегакусок.
Если кто-нибудь поймет зачем создается экземпляр ридера - объясните. Блин я не понял, честно... xD
(SPQuery и др. это опять же SharePoint API.)
−159
if( !ruleWithLongName1 )
{
return;
}
if( !ruleWithLongName2 )
{
return;
}
if( !ruleWithLongName3 )
{
return;
}
if( !ruleWithLongName4 )
{
return;
}
if( !ruleWithLongName5 )
{
return;
}
клевый кусочек (повторяется в нескольких функциях) имена условий изменены, но скажу что они не Boolean типа
+163
//table[0][i] - win1251
table[0][0]=0xA8;
for (q=192;q<=255;q++) {
table[0][q-191]=(byte)q;
}
table[0][65]=0xB8;
//table[1][i] - KOI8
table[1][0]=0xB3; table[2][1]=0xE1; table[1][2]=0xE2; table[1][3]=0xF7; table[1][4]=0xE7; table[1][5]=0xE4;
table[1][6]=0xE5; table[1][7]=0xF6; table[1][8]=0xFA; table[1][9]=0xE9; table[1][10]=0xEA; table[1][11]=0xEB;
table[1][12]=0xEC; table[1][13]=0xED; table[1][14]=0xEE; table[1][15]=0xEF; table[1][16]=0xF0; table[1][17]=0xF2;
table[1][18]=0xF3; table[1][19]=0xF4; table[1][20]=0xF5; table[1][21]=0xE6; table[1][22]=0xE8; table[1][23]=0xE3;
table[1][24]=0xFE; table[1][25]=0xFB; table[1][26]=0xFD; table[1][27]=0xFF; table[1][28]=0xF9; table[1][29]=0xF8;
table[1][30]=0xFC; table[1][31]=0xE0; table[1][32]=0xF1; table[1][33]=0xC1; table[1][34]=0xC2; table[1][35]=0xD7;
table[1][36]=0xC7; table[1][37]=0xC4; table[1][38]=0xC5; table[1][39]=0xD6; table[1][40]=0xDA; table[1][41]=0xC9;
table[1][42]=0xCA; table[1][43]=0xCB; table[1][44]=0xCC; table[1][45]=0xCD; table[1][46]=0xCE; table[1][47]=0xCF;
table[1][48]=0xD0; table[1][49]=0xD2; table[1][50]=0xD3; table[1][51]=0xD4; table[1][52]=0xD5; table[1][53]=0xC6;
table[1][54]=0xC8; table[1][55]=0xC3; table[1][56]=0xDE; table[1][57]=0xDB; table[1][58]=0xDD; table[1][59]=0xDF;
table[1][60]=0xD9; table[1][61]=0xD8; table[1][62]=0xDC; table[1][63]=0xC0; table[1][64]=0xD1; table[1][65]=0xA3;
// table[2][i] - CP866
table[2][0]=0xf0;
for (q=128;q<=175;q++) {
table[2][q-127]=(byte)q;
}
for (q=224;q<=239;q++) {
table[2][q+49-224]=(byte)q;
}
table[2][65]=0xf1;
// table[3][i] - Unicode
table[3][0]=0x01;
for (q=16;q<=79;q++) {
table[3][q-15]=(byte)q;
}
table[3][65]=0x51;
Таблица кодировок.
−187
SELECT ....
CASE WHEN [StatusChange] = 0 THEN 0
WHEN [StatusChange] = 1 THEN 1 -- "желтый", изменен
WHEN [StatusChange] = 2 THEN 2-- "серый", исключенный пункт
WHEN [StatusChange] = 3 THEN 3 -- "светло-зеленый", добавленный пункт
WHEN [StatusChange] = 4 THEN 4-- "зеленый", добавленный и измененный пункт
ELSE 100
END AS 'StatusColor'
FROM ....
−178
try:
os.mkdir(conf_path)
except WindowsError,e:
if "[Error 183]" not in str(e):
QMessageBox.critical(self, "Logon error","Я блять настоящий индус!")
+145
/*Выпадающее меню - рассчитывание координат и выполнение определенных действий при определенных координатах курсора*/
//document.onmousemove = function(e){
// var mCur = mousePageXY(e);
//}
//function mousePageXY(e)
//{
// var x = 0, y = 0;
//
// if (!e) e = window.event;
//
// if (e.pageX || e.pageY)
// {
// x = e.pageX;
// y = e.pageY;
// }
//
// else if (e.clientX || e.clientY)
// {
// x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
// y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
// }
// if ((((screen.width/2-491)>x)||(screen.width/2+409<x))||((screen.width/2-491<x)&&(y<125)&&((screen.width/2-274)>x))||(y>170+height)||(((screen.width/2-274)<x)&&(y<173))) {
// document.getElementById("menu").style.display = 'none'
// }
// return {
// "x":x,
// "y":y
// };
//}
+145
@Override
public void run() {
while (true) {
try {
if (this.getTime() == this.peek().getTime()) {
this.pop().run();
}
Thread.sleep(1000);
} catch (final InterruptedException e) {
break;
}
}
}
кто найдет говняшку, тот получит... = )
если что, я уже исправил )))