mysql_real_escape_string / Говнокод #6315 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
ALTER   PROCEDURE Estimate  @Goods_ID int ,@Workshop_ID int AS

SELECT 9, null, null,  'Арматура',null, null ,  null,  null
Union
SELECT     8, dbo.Charges.FK_TypeCh, dbo.Charges.ID, '       '+dbo.Charges.NAME, dbo.Charge_Price.KBO,   
	             dbo.Charges.Cost, Round(dbo.Charges.Cost*dbo.Charge_Price.KBO,1), 
		Round( dbo.Charges.Cost*dbo.Charge_Price.KBO/ dbo.Goods.volume,1)
FROM         dbo.Charge_Price INNER JOIN
                      dbo.Charges ON dbo.Charge_Price.FK_Charge = dbo.Charges.ID INNER JOIN
                      dbo.Workshop ON dbo.Charge_Price.FK_Workshop = dbo.Workshop.ID INNER JOIN
	        dbo.Goods ON dbo.Charge_Price.FK_Goods= dbo.Goods.ID	
WHERE     (dbo.Charge_Price.FK_Workshop = 6) AND (dbo.Charge_Price.FK_Goods = @Goods_ID)
Union
SELECT     7, null, null,'         Всего  по арматуре', null,   null,Round( SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO) ,1)as Сумма, 
	Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO/ dbo.Goods.volume),1)
FROM         dbo.Charge_Price INNER JOIN
	      dbo.Charges ON dbo.Charge_Price.FK_Charge = dbo.Charges.ID INNER JOIN
                    dbo.Workshop ON dbo.Charge_Price.FK_Workshop = dbo.Workshop.ID INNER JOIN
	        dbo.Goods ON dbo.Charge_Price.FK_Goods= dbo.Goods.ID	
WHERE     (dbo.Charge_Price.FK_Workshop = 6) AND (dbo.Charge_Price.FK_Goods = @Goods_ID)
Union
/*
  Ещё мурнадцать запросов с объединением
*/
UNION
SELECT     -3,  null, null,'         Полная себестоимость',   null, null, Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO)*1.05,1) as Сумма, 
	Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO/ dbo.Goods.volume)*1.05,1)
FROM         dbo.Charge_Price INNER JOIN
	      dbo.Charges ON dbo.Charge_Price.FK_Charge = dbo.Charges.ID INNER JOIN
                    dbo.Workshop ON dbo.Charge_Price.FK_Workshop = dbo.Workshop.ID INNER JOIN
	        dbo.Goods ON dbo.Charge_Price.FK_Goods= dbo.Goods.ID	
WHERE    ( (dbo.Charge_Price.FK_Workshop = @Workshop_ID)  OR  (dbo.Charge_Price.FK_Workshop = 6)   OR
		 (dbo.Charge_Price.FK_Workshop = 7) )AND (dbo.Charge_Price.FK_Goods = @Goods_ID) 
UNION 
SELECT     -4,  null, null,'         Плановые накопления',   null, null, Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO)*0.1575,1) as Сумма, 
	Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO/ dbo.Goods.volume)*0,1575,1)
FROM         dbo.Charge_Price INNER JOIN
	      dbo.Charges ON dbo.Charge_Price.FK_Charge = dbo.Charges.ID INNER JOIN
                    dbo.Workshop ON dbo.Charge_Price.FK_Workshop = dbo.Workshop.ID INNER JOIN
	        dbo.Goods ON dbo.Charge_Price.FK_Goods= dbo.Goods.ID	
WHERE    ( (dbo.Charge_Price.FK_Workshop = @Workshop_ID)  OR  (dbo.Charge_Price.FK_Workshop = 6)   OR
		 (dbo.Charge_Price.FK_Workshop = 7) )AND (dbo.Charge_Price.FK_Goods = @Goods_ID) 
UNION
SELECT     -5,  null, null,'         Цена оптовая',   null, null, Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO)*1.2075,1) as Сумма, 
	Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO/ dbo.Goods.volume)*1,2075,1)
FROM         dbo.Charge_Price INNER JOIN
	      dbo.Charges ON dbo.Charge_Price.FK_Charge = dbo.Charges.ID INNER JOIN
                    dbo.Workshop ON dbo.Charge_Price.FK_Workshop = dbo.Workshop.ID INNER JOIN
	        dbo.Goods ON dbo.Charge_Price.FK_Goods= dbo.Goods.ID	
WHERE    ( (dbo.Charge_Price.FK_Workshop = @Workshop_ID)  OR  (dbo.Charge_Price.FK_Workshop = 6)   OR
		 (dbo.Charge_Price.FK_Workshop = 7) )AND (dbo.Charge_Price.FK_Goods = @Goods_ID) 

Order by 1 desc, 2, 3

Формирование какой то сметы в стле 1С

Запостил: dens dens, (Updated )

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

  • знаю народ который такое пишет, знаю почему так пишут: с утра надо все исправить, что бы бугалтерия в 10:00 могла начать работу. да и плата как правило почасовая у консультантов - быстрее сделаешь, довольней клиент.

    если осмысленное нечто писать, применять правильный дизайн, то потом что бы что-то добавить или изменить нужно пропорциональное время для редизайна. часто вставить больше памяти в сервак намного дешевле, что бы все тупые запросы (как например сверху) работали из памяти.

    с точки зрения прикладной области, говно слабое.
    Ответить
    • говно унылое, потому что через пять минут после написания невозможно понять, что этот кусок делает
      Ответить
      • как раз наоборот: людям кто знакомы со структурой базы даже думать не надо что бы понимать. и думать не надо что бы что-то менять. и если что-то меняешь для одного типа товара, другие типы товаров это не затрагивает.

        а то что это другим не понятно... так это как раз лучше! консультанта хер поменяешь!!

        ну вообщем, суровые реалии ДБ консультантов. лучше б не хаили - а учились бы, опыта набирались - как быть незаменимыми сотрудниками. 😉

        ЗЫ ну в данном конкретном случае то как раз все тривиально и понятно. магические числа скорее всего имеют смысл только в той конкретной фирме для которой это щасцьце делалось. да и как математик, я не имею привычки вникать в константы 🙂
        Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8