Changes between Version 1 and Version 2 of AdvancedReports


Ignore:
Timestamp:
01/22/25 00:10:45 (9 days ago)
Author:
212054
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedReports

    v1 v2  
    1 Во изведба
     1= **Напредни извештаи од базата (SQL и складирани процедури)**
     2
     3=== **  Преглед и одобрување на набавка  **
     4
     5{{{
     6CREATE PROCEDURE GetDobavuvacDetails(IN input_Dobavuvac_Ime VARCHAR(50))
     7 BEGIN
     8    SELECT d.Dobavuvac_Ime, d.Klasa AS Class, d.Tip AS Type, d.Poteklo AS Origin
     9    FROM Dobavuvac d
     10    WHERE d.Dobavuvac_Ime = input_Dobavuvac_Ime;
     11
     12    SELECT o.Objekt_ID, o.Tip AS Objekt_Type, o.Adresa AS Objekt_Address, n.Predmet AS Item_Supplied, n.Cena AS Item_Cost, n.Kolicina AS Quantity_Supplied
     13    FROM Ispolnuva i
     14    JOIN Nabavka n ON i.Nabavka_ID = n.Nabavka_ID
     15    JOIN Objekt o ON n.Objekt_ID = o.Objekt_ID
     16    WHERE i.Dobavuvac_Ime = input_Dobavuvac_Ime;
     17
     18    SELECT SUM(n.Cena * n.Kolicina) AS Total_Spent
     19    FROM Ispolnuva i
     20    JOIN Nabavka n ON i.Nabavka_ID = n.Nabavka_ID
     21    WHERE i.Dobavuvac_Ime = input_Dobavuvac_Ime;
     22 END
     23}}}
     24
     25=== **  Информации за соработка со подизведувачи  **
     26
     27{{{
     28CREATE PROCEDURE GetPodizveduvacDetails(IN input_Podizveduvac_Ime VARCHAR(50))
     29BEGIN
     30    SELECT
     31        p.Podizveduvac_Ime,
     32        p.Struka AS Expertise,
     33        p.Br_vraboteni AS Total_Employees,
     34        p.Saatnica AS Hourly_Rate
     35    FROM Podizveduvac p
     36    WHERE p.Podizveduvac_Ime = input_Podizveduvac_Ime;
     37
     38    SELECT
     39        r.Maticen_br AS Employee_ID,
     40        r.Ime AS Employee_Name,
     41        r.Seniornost AS Seniority
     42    FROM Raboti_Za rz
     43    JOIN Rabotnik r ON rz.Maticen_br = r.Maticen_br
     44    WHERE rz.Podizveduvac_Ime = input_Podizveduvac_Ime;
     45
     46    SELECT
     47        o.Objekt_ID,
     48        o.Tip AS Objekt_Type,
     49        o.Adresa AS Objekt_Address,
     50        TIMESTAMPDIFF(HOUR, FROM_UNIXTIME(rn.Od_vreme), FROM_UNIXTIME(rn.Do_vreme)) AS Total_Hours_Worked,
     51        TIMESTAMPDIFF(HOUR, FROM_UNIXTIME(rn.Od_vreme), FROM_UNIXTIME(rn.Do_vreme)) * p.Saatnica AS Total_Payments
     52    FROM Raboti_Na rn
     53    JOIN Objekt o ON rn.Objekt_ID = o.Objekt_ID
     54    JOIN Podizveduvac p ON rn.Podizveduvac_Ime = p.Podizveduvac_Ime
     55    WHERE rn.Podizveduvac_Ime = input_Podizveduvac_Ime;
     56
     57    SELECT
     58        n.Nabavka_ID,
     59        n.Datum AS Request_Date,
     60        n.Cena AS Cost,
     61        n.Kolicina AS Quantity,
     62        n.Predmet AS Item
     63    FROM Pobaruva pb
     64    JOIN Nabavka n ON pb.Nabavka_ID = n.Nabavka_ID
     65    WHERE pb.Podizveduvac_Ime = input_Podizveduvac_Ime;
     66END
     67}}}
     68
     69=== **  Генерална состојба на објект  **
     70
     71{{{
     72CREATE PROCEDURE GetObjektDetails(IN input_Objekt_ID INT)
     73BEGIN
     74    -- Opsti informacii za objektot
     75    SELECT
     76        o.Objekt_ID,
     77        o.Tip AS Objekt_Type,
     78        o.Adresa AS Objekt_Address,
     79        vi.Budzet AS Objekt_Budget,
     80        n.Nadzor_Ime
     81    FROM Objekt o
     82    LEFT JOIN Vo_Izgradba vi ON o.Objekt_ID = vi.Objekt_ID
     83    LEFT JOIN Nadgleduva nd ON o.Objekt_ID = nd.Objekt_ID
     84    LEFT JOIN Nadzor n ON nd.Nadzor_Ime = n.Nadzor_Ime
     85    WHERE o.Objekt_ID = input_Objekt_ID
     86    GROUP BY o.Objekt_ID;
     87
     88    -- Info za podizveduvacite koi rabotele na objektot
     89    SELECT
     90        pn.Podizveduvac_Ime,
     91        TIMESTAMPDIFF(HOUR, FROM_UNIXTIME(rn.Od_vreme), FROM_UNIXTIME(rn.Do_vreme)) AS Total_Hours_Worked,
     92        TIMESTAMPDIFF(HOUR, FROM_UNIXTIME(rn.Od_vreme), FROM_UNIXTIME(rn.Do_vreme)) * pn.Saatnica AS Total_Cost
     93    FROM Raboti_Na rn
     94    JOIN Podizveduvac pn ON rn.Podizveduvac_Ime = pn.Podizveduvac_Ime
     95    WHERE rn.Objekt_ID = input_Objekt_ID;
     96
     97    -- Info za dobavuvachi
     98    SELECT
     99        d.Dobavuvac_Ime,
     100        SUM(n.Cena * n.Kolicina) AS Total_Spent
     101    FROM Nabavka n
     102    JOIN Nameneta_Za nz ON n.Nabavka_ID = nz.Nabavka_ID
     103    JOIN Ispolnuva i ON n.Nabavka_ID = i.Nabavka_ID
     104    JOIN Dobavuvac d ON i.Dobavuvac_Ime = d.Dobavuvac_Ime
     105    WHERE nz.Objekt_ID = input_Objekt_ID
     106    GROUP BY d.Dobavuvac_Ime;
     107END
     108}}}
     109
     110=== **  Преглед и одобрување на набавка  **
     111
     112{{{
     113CREATE PROCEDURE `Display_Nabavki_For_Nadzor` (IN N_Ime VARCHAR(50))
     114BEGIN
     115    WITH select_objekt_nabavki AS (
     116        SELECT
     117            o.Objekt_ID AS son_OID,
     118            nb.Nabavka_ID AS son_NID,
     119            nb.Datum AS son_D,
     120            nb.Predmet AS son_P,
     121            nb.Kolicina AS son_K,
     122            nb.Cena AS son_C
     123        FROM Objekt o
     124        JOIN Nadgleduva n ON o.Objekt_ID = n.Objekt_ID
     125        JOIN Nameneta_Za nz ON nz.Objekt_ID = o.Objekt_ID
     126        JOIN Nabavka nb ON nb.Nabavka_ID = nz.Nabavka_ID
     127        WHERE n.Nadzor_Ime = N_Ime
     128    )
     129
     130    SELECT son_OID, son_NID, son_D, son_P, son_K, son_C
     131    FROM select_objekt_nabavki son
     132    LEFT JOIN Odobruva o ON son.son_NID = o.Nabavka_ID
     133    WHERE o.Nabavka_ID IS NULL;
     134   
     135    SELECT son_OID, son_NID, son_D, son_P, son_K, son_C
     136    FROM select_objekt_nabavki son
     137    LEFT JOIN Odobruva o ON son.son_NID = o.Nabavka_ID
     138    WHERE o.Nabavka_ID IS NOT NULL;
     139END;
     140}}}