Changes between Version 5 and Version 6 of AdvancedReports


Ignore:
Timestamp:
12/20/22 13:48:38 (2 years ago)
Author:
201045
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedReports

    v5 v6  
    158158$$
    159159}}}
     160
     161== Функција за пресметување на вкупен износ на нарачка ==
     162
     163{{{#!sql
     164drop function calculate_cost_of_order_food(order_id int);
     165
     166
     167create  function calculate_cost_of_order_food(order_id int)
     168returns table(
     169        vkupno_hrana int
     170)
     171language plpgsql
     172as
     173$$
     174begin
     175        return query select kolicina * iznos as vkupno
     176        from naracka n join naracka_sodrzi_hrana nih on n.naracka_id = nih.naracka_id
     177        join hrana h on h.id_stavka = nih.id_stavka
     178        join cena c on (c.id_stavka = h.id_stavka and vazi_do is null)
     179        or (c.id_stavka = h.id_stavka and vazi_do > now())
     180        where n.naracka_id = order_id;
     181       
     182       
     183       
     184end
     185$$
     186
     187drop function calculate_cost_of_order_packets(order_id int);
     188
     189create function calculate_cost_of_order_packets(order_id int)
     190returns table (
     191        vkupno_paketi bigint
     192)
     193language plpgsql
     194as
     195$$
     196begin
     197        return query select sum(iznos) * nip.kolicina  as vkupno_paketi
     198        from naracka n join naracka_ima_paket nip on n.naracka_id = nip.naracka_id
     199        join paket pa on pa.paket_id  = nip.paket_id
     200        join paket_sodrzi_hrana psh on psh.paket_id = pa.paket_id
     201        join hrana h on h.id_stavka = psh.id_stavka
     202        join cena c on (c.id_stavka = h.id_stavka and vazi_do is null)
     203                or (c.id_stavka = h.id_stavka and vazi_do > now())
     204        where n.naracka_id = order_id
     205        group by n.naracka_id, pa.paket_id, nip.kolicina ;
     206end
     207$$
     208
     209
     210drop function calculate_order_cost(orider_id int);
     211
     212create function calculate_order_cost(order_id int)
     213returns bigint
     214language plpgsql
     215as
     216$$
     217declare
     218vkupno_cena_hrana bigint;
     219vkupno_cena_paketi bigint;
     220begin
     221        select sum(vkupno_hrana) into vkupno_cena_hrana from calculate_cost_of_order_food(order_id);
     222        select sum(vkupno_paketi) into vkupno_cena_paketi from calculate_cost_of_order_packets(order_id);
     223        return vkupno_cena_hrana + vkupno_cena_paketi;
     224       
     225end
     226$$
     227
     228}}}