Changes between Version 1 and Version 2 of PrototypeApplication


Ignore:
Timestamp:
01/21/25 04:15:09 (10 days ago)
Author:
212054
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PrototypeApplication

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