| 1 | **Генерална состојба на објект** |
| 2 | |
| 3 | Интерфејс за преглед на генералната состојба на еден објект. Страната за преглед ќе содржи информации за тоа колку е потрошено на објектот, кој работел на него, кој снабдувал набавки, како и основни информации за самиот објект. |
| 4 | |
| 5 | Складираната процедура би изгледала вака: |
| 6 | |
| 7 | |
| 8 | {{{ |
| 9 | CREATE PROCEDURE GetObjektDetails(IN input_Objekt_ID INT) |
| 10 | BEGIN |
| 11 | -- Opsti informacii za objektot |
| 12 | SELECT |
| 13 | o.Objekt_ID, |
| 14 | o.Tip AS Objekt_Type, |
| 15 | o.Adresa AS Objekt_Address, |
| 16 | vi.Budzet AS Objekt_Budget, |
| 17 | GROUP_CONCAT(n.Nadzor_Ime SEPARATOR ', ') AS Nadzor_Names |
| 18 | FROM |
| 19 | Objekt o |
| 20 | LEFT JOIN |
| 21 | Vo_Izgradba vi ON o.Objekt_ID = vi.Objekt_ID |
| 22 | LEFT JOIN |
| 23 | Nadgleduva nd ON o.Objekt_ID = nd.Objekt_ID |
| 24 | LEFT JOIN |
| 25 | Nadzor n ON nd.Nadzor_Ime = n.Nadzor_Ime |
| 26 | WHERE |
| 27 | o.Objekt_ID = input_Objekt_ID |
| 28 | GROUP BY |
| 29 | o.Objekt_ID; |
| 30 | |
| 31 | -- Info za podizveduvacite koi rabotele na objektot |
| 32 | SELECT |
| 33 | pn.Podizveduvac_Ime, |
| 34 | TIMESTAMPDIFF(HOUR, FROM_UNIXTIME(rn.Od_vreme), FROM_UNIXTIME(rn.Do_vreme)) AS Total_Hours_Worked, |
| 35 | TIMESTAMPDIFF(HOUR, FROM_UNIXTIME(rn.Od_vreme), FROM_UNIXTIME(rn.Do_vreme)) * pn.Saatnica AS Total_Cost |
| 36 | FROM |
| 37 | Raboti_Na rn |
| 38 | JOIN |
| 39 | Podizveduvac pn ON rn.Podizveduvac_Ime = pn.Podizveduvac_Ime |
| 40 | WHERE |
| 41 | rn.Objekt_ID = input_Objekt_ID; |
| 42 | |
| 43 | -- Info za dobavuvachi |
| 44 | SELECT |
| 45 | d.Dobavuvac_Ime, |
| 46 | SUM(n.Cena) AS Total_Spent |
| 47 | FROM |
| 48 | Nabavka n |
| 49 | JOIN |
| 50 | Nameneta_Za nz ON n.Nabavka_ID = nz.Nabavka_ID |
| 51 | JOIN |
| 52 | Ispolnuva i ON n.Nabavka_ID = i.Nabavka_ID |
| 53 | JOIN |
| 54 | Dobavuvac d ON i.Dobavuvac_Ime = d.Dobavuvac_Ime |
| 55 | WHERE |
| 56 | nz.Objekt_ID = input_Objekt_ID |
| 57 | GROUP BY |
| 58 | d.Dobavuvac_Ime; |
| 59 | END |
| 60 | }}} |