Log inRegister
You are here: UtalvanyKK » UkkListPlan

Tervezett listák, statisztikák

A listákat a képernyőn és PDF-ben letölthető módon is el kell tudni érni!

személyek élettörténet listái

  • belépés, kilépés, timeout
    • saját (felületen + kérés)
    • rendszergazdai (csak kérés)
  • ki van épp a rendszerben (felületen)
  • ajánlatkérések (kérés)
    • ajánlatkérés összesen
    • ügyfél által lezáratlan összesen
    • sikeres összesen
  • ajánlatadások (kérés)
    • ajánlat összesen
    • ajánlatadó által lezáratlan összesen
    • elfogadott ajánlata összesen
  • egyes ajánlatok részletei

Időszakos listák (kérés):

  • belépések száma
  • felajánlások száma, összege
  • sikeres ügyletek száma, értéke
  • meghiúsult ügyletek száma
  • értesítések listázása (e-mail)
  • adott személy mikor milyen felületet használt (NGINS?)
  • böngésző statisztika (NGINS?)
  • regisztráló, a folyamatot be nem fejező felhasználók listája
  • mintautalványt kérők listája (aránya?)

Rendszerre vonatkozó listák

  • összes forgalom, stb.
  • érvénytelem utalványok listája
  • függőben lévő tranzakciók

SQL kérések

Rendszerbe belépő felhasználók listája

Tárolt eljárás neve: =ukk.list_user_login(now())

Visszaadott értékek:
  • user_id: felhasználó azonosítója
  • user_name: felhasználói név
  • person_name: személy neve
  • session_login_date: belépés dátuma
  • session_login_time: belépés ideje
  • login_interval: a rendszerben eltöltött idő (időtúllépés esetén: Timeout)
  • session_ip: a belépő IP címe

Szűrési lehetőségek:
  • belépés időpontja
  • felhasználó neve

Rendezés:
  • belépés időpontja szerint

-- rendszerbe belépő felhasználók listája
-- belépés időpontja, időtartama és az IP cím
SELECT
  s.user_id,
  u.user_name,
  p.person_name,
  CAST(s.session_login_time AS date) AS session_login_date,
  CAST(s.session_login_time AS timetz) AS session_login_time,
  CASE WHEN s.session_timeout THEN 'Timeout' ELSE to_char(session_logout_time - s.session_login_time, 'HH24:MI:SS') END AS login_interval,
  s.session_ip
FROM bob.sessions_log AS s
  JOIN bob.users_active AS u
    ON (u.user_id = s.user_id)
  JOIN bob.persons_active AS p
    ON (p.person_id = u.person_id)
WHERE u.user_name NOT IN ('bobadmin','import','registrator')
--   AND s.session_login_time BETWEEN '2015-08-06' AND '2015-08-08' -- szűrés belépés időpontja szerint
--   AND u.user_name = 'solyom.sandor' -- szűrés felhasználó szerint
ORDER BY s.session_login_time;

Belépések és aktív felhasználók száma

Tárolt eljárás neve: ukk.stat_user_login(now())

Visszaadott értékek:
  • count_user: aktív felhasználók száma (az adott időszakban)
  • count_login: belépések száma (az adott időszakban)

Szűrési lehetőségek:
  • belépés időpontja

Rendezés:
  • -

-- belépések és aktív felhasználók száma
-- felhasználók száma, belépések száma
WITH
  user_count AS (
    SELECT
      count(1) AS user_count
    FROM bob.sessions_log AS s
      JOIN bob.users_active AS u
        ON (u.user_id = s.user_id)
    WHERE u.user_name NOT IN ('bobadmin','import','registrator')
--       AND s.session_login_time BETWEEN '2015-08-06' AND '2015-08-08' -- szűrés belépés időpontja szerint
    GROUP BY s.user_id
  )
SELECT
  count(1) AS count_user,
  sum(user_count) AS count_login
FROM user_count;

A rendszerben nyilvántartott személyek listája

Tárolt eljárás neve: ukk.statdetails_outer_person(now())

Visszaadott értékek:
  • outer_person_id: személy rekord-azonosítója
  • is_interrupted_user: igaz, ha nem véglegesítette a regisztrációt
  • is_registered_user: igaz, ha regisztrált felhasználó
  • is_outer_person: igaz, ha külső rendszerben (pl.: NAVI) nyilván van tartva
  • is_requested_demo: igaz, ha kért mintautalványt
  • user_name: igényelt vagy megkapott felhasználói név
  • person_name: személy neve
  • registration_time: regisztráció időpontja
  • foreign_codes: távoli kódok (külső rendszerek azonosítói)
  • person_id: BOB személy rekord-azonosítója
  • user_id: BOB felhasználó rekord-azonosítója
  • financial_ident: pénzügyi azonosító (adóazonosító jel)
  • email: e-mail cím
  • phone_number: telefonszám
  • address: postai cím

Szűrési lehetőségek:
  • felhasználó szerint
  • előregisztációt nem befejező személyek
  • regisztrált felhasználók
  • külső rendszerben nyilvántartott személy
  • mintautalványt kért

Rendezés:
  • személy neve szerint

-- a rendszerben szereplő személyek listája
-- felhasználói tulajdonságok, személyek adatai
SELECT
  op.eid AS outer_person_id,
  usr.user_name IS NULL AND psn.person_regcode IS NOT NULL AS is_interrupted_user,
  usr.user_name IS NOT NULL AS is_registered_user,
  p_op.entity_id IS NOT NULL AS is_outer_person,
  coalesce(op.is_requested_demo,false) AS is_requested_demo,
  coalesce(usr.user_name,op.user_name) AS user_name,
  coalesce(psn.person_fullname, psn.person_lastname ||' '|| psn.person_firstname, op.full_name) AS person_name,
  usr.creation_time AS registration_time,
  p_op.foreign_codes,
  op.person_id,
  usr.user_id,
  op.financial_ident,
  op.email,
  op.phone_number,
  op.address
FROM ukk.simplelist_outer_person() AS op
  LEFT JOIN ( bob.persons AS psn
    LEFT JOIN bob.users_active AS usr
      ON (usr.person_id = psn.person_id)
  ) ON (psn.person_id = op.person_id AND psn.modification_time IS NULL)
  LEFT JOIN (
    SELECT
      p_op.entity_id,
      array_agg(p_op.foreign_code) AS foreign_codes
    FROM exchange.partner_outer_person AS p_op
    GROUP BY p_op.entity_id
  ) AS p_op
    ON (p_op.entity_id = op.eid)
WHERE op.status != 'deleted'
--   AND coalesce(usr.user_name,op.user_name) = 'solyom.sandor' -- szűrés felhasználó szerint
--   AND (usr.user_name IS NULL AND op.auth_code IS NOT NULL) -- előregisztációt nem befejező személyek
--   AND usr.user_name IS NOT NULL -- regisztrált felhasználók
--   AND p_op.eid IS NOT NULL -- külső rendszerben nyilvántartott személy
--   AND coalesce(op.is_requested_demo,false) -- mintautalványt kért
ORDER BY coalesce(psn.person_fullname, psn.person_lastname ||' '|| psn.person_firstname, op.full_name);

A rendszerben szereplő személyek statisztikája

Tárolt eljárás neve: ukk.statsummary_outer_person(now())

Visszaadott értékek:
  • count_interrupted_user: mindazok száma, akik, nem véglegesítették a regisztrációjukat
  • count_registered_user: regisztrált felhasználók száma
  • count_outer_person: mindazok száma, akik ismereteink szerint külső rendszerekben (pl.: NAVI) is nyilván vannak tartva
  • count_requested_demo: mindazok száma, akik, kértek mintautalványt
  • count_no_requested_demo: mindazok száma, akik, nem kértek mintautalványt
  • count_all: összes nyilvántartott személy száma

Szűrési lehetőségek:
  • -

Rendezés:
  • -

-- a rendszerben szereplő személyek statisztikája
-- statisztika típusok alapján
SELECT
  count((usr.user_name IS NULL AND psn.person_regcode IS NOT NULL) OR NULL) AS count_interrupted_user,
  count((usr.user_name IS NOT NULL) OR NULL) AS count_registered_user,
  count((p_op.entity_id IS NOT NULL) OR NULL) AS count_outer_person,
  count(op.is_requested_demo OR NULL) AS count_requested_demo,
  count((op.is_requested_demo = false) OR NULL) AS count_no_requested_demo,
  count(1) AS count_all
FROM ukk.simplelist_outer_person() AS op
  LEFT JOIN ( bob.persons AS psn
    LEFT JOIN bob.users_active AS usr
      ON (usr.person_id = psn.person_id)
  ) ON (psn.person_id = op.person_id AND psn.modification_time IS NULL)
  LEFT JOIN (
    SELECT
      p_op.entity_id,
      array_agg(p_op.foreign_code) AS foreign_codes
    FROM exchange.partner_outer_person AS p_op
    GROUP BY p_op.entity_id
  ) AS p_op
    ON (p_op.entity_id = op.eid)
WHERE op.status != 'deleted';

Ajánlatkérések listája

Tárolt eljárás neve: ukk.statdetails_request_offer(now())

Visszaadott értékek:
  • user_id: felhasználó azonosítója
  • user_name: felhasználói név
  • person_name: személy neve
  • request_offer_id: kérés rekord-azonosítója
  • office_id: iroda rekord-azonosítója
  • office_name: iroda rövid neve
  • request_offer_par: kérés összege
  • bid_par: elfogadott ajánlat összege
  • request_date: ajánlatkérés dátuma
  • request_time: ajánlatkérés ideje
  • first_bid_date: első ajánlat érkezésének dátuma
  • first_bid_time: első ajánlat érkezésének ideje
  • accept_bid_date: elfogadott ajánlat érkezésének dátuma
  • accept_bid_time: elfogadott ajánlat érkezésének ideje
  • status: ügylet állapota (closed:lezárt, pending:folyamatban lévő, active:még nincs elfogadott ajánlat
  • count_bid: érkezett (és nem törölt) ajánlatok száma

Szűrési lehetőségek:
  • ajánlatkérés időpontja
  • felhasználó neve

Rendezés:
  • felhasználói név + ajánlatkérés ideje szerint

-- ajánlatkérések listája
-- felhasználó, iroda, összegek, ajánlatok, időpontok
WITH
  timelined_request_offer AS (
    SELECT
      tro.eid,
      min(tro.creation_time) AS creation_time
    FROM ukk.request_offer AS tro
    WHERE tro.status = 'active'
    GROUP BY tro.eid
  ), -- timelined_request_offer - kérések aktiválásának ideje
  voucher_pack AS (
    SELECT
     vp.eid,
     sum(pvt.par) AS par
    FROM ukk.simplelist_voucher_pack(now()) AS vp
      LEFT JOIN ukk.simplelist_pack_voucher_type() AS pvt
        ON (pvt.voucher_pack_id = vp.eid)
    WHERE vp.status != 'deleted'
    GROUP BY vp.eid
  ), -- voucher_pack - csomagok értéke
  outer_person AS (
    SELECT
      op.eid,
      coalesce(usr.user_name,op.user_name) AS user_name,
      coalesce(psn.person_fullname, psn.person_lastname ||' '|| psn.person_firstname, op.full_name) AS person_name,
      op.person_id,
      usr.user_id,
      op.financial_ident,
      op.email,
      op.phone_number
    FROM ukk.simplelist_outer_person() AS op
      LEFT JOIN ( bob.persons_active AS psn
        LEFT JOIN bob.users_active AS usr
          ON (usr.person_id = psn.person_id)
      ) ON (psn.person_id = op.person_id)
  ), -- outer_person - felhasználók és személyek adatai
  bid AS (
    SELECT
      bid.request_offer_id,
      min(bid.creation_time) AS creation_time,
      count(bid.eid) AS count_bid,
      array_agg(DISTINCT bid.status) AS bid_statuses
    FROM ukk.simplelist_bid(now()) AS bid
    WHERE bid.status NOT IN ('draft','deleted')
    GROUP BY bid.request_offer_id
  ), -- bid - kérésre érkező első ajánlat ideje
  bid_accept_time AS (
    SELECT
      min(bid.request_offer_id) AS request_offer_id,
      min(bid.creation_time) AS creation_time
    FROM ukk.bid AS bid
    WHERE bid.status = 'accepted'
    GROUP BY bid.eid
  ), -- bid_accept_time - ajánlat elfogadásának ideje
  accepted_bid AS (
    SELECT
      bid.request_offer_id,
      vp.par
    FROM ukk.bid AS bid
      LEFT JOIN voucher_pack AS vp
        ON (vp.eid = bid.supply_voucher_pack_id)
    WHERE bid.status IN ('accepted','closed')
  ) -- accepted_bid - elfogadott ajánlatok értéke
SELECT
  op.user_id,
  op.user_name,
  op.person_name,
  ro.eid AS request_offer_id,
  ro.office_id,
  ofc.short_name AS office_name,
  vp.par AS request_offer_par,
  accepted_bid.par AS bid_par,
  CAST(t_ro.creation_time AS date) AS request_date,
  CAST(t_ro.creation_time AS timetz) AS request_time,
  CAST(bid.creation_time AS date) AS first_bid_date,
  CAST(bid.creation_time AS timetz) AS first_bid_time,
  CAST(a_bid.creation_time AS date) AS accept_bid_date,
  CAST(a_bid.creation_time AS timetz) AS accept_bid_time,
  CASE WHEN ro.status = 'closed' AND coalesce('closed' = ANY(bid.bid_statuses),false)
    THEN 'closed'
    ELSE CASE WHEN ro.status IN ('active','closed') AND CAST(ARRAY['accepted','closed'] AS varchar[]) && bid_statuses
      THEN 'pending'
      ELSE ro.status
    END
  END AS status,
  bid.count_bid
FROM ukk.simplelist_request_offer(now()) AS ro
  JOIN timelined_request_offer AS t_ro
    ON (t_ro.eid = ro.eid)
  JOIN outer_person AS op
    ON (op.eid = ro.outer_person_id)
  JOIN ukk.simplelist_office(now()) AS ofc
    ON (ofc.eid = ro.office_id)
  JOIN voucher_pack AS vp
    ON (vp.eid = ro.demand_voucher_pack_id)
  LEFT JOIN bid AS bid
    ON (bid.request_offer_id = ro.eid)
  LEFT JOIN accepted_bid AS accepted_bid
    ON (accepted_bid.request_offer_id = ro.eid)
  LEFT JOIN bid_accept_time AS a_bid
    ON (a_bid.request_offer_id = ro.eid)
WHERE ro.status NOT IN ('deleted','draft')
--   AND t_ro.creation_time BETWEEN '2015-09-09' AND '2015-09-10' -- szűrés ajánlatkérés időpontja szerint
--   AND op.user_name = 'solyom.sandor' -- szűrés felhasználó szerint
ORDER BY op.user_name, t_ro.creation_time;

Ajánlatkérések listája felhasználónként összesítve

Tárolt eljárás neve: ukk.statsummary_request_offer(now())

Visszaadott értékek:
  • user_id: felhasználó azonosítója
  • user_name: felhasználói név
  • person_name: személy neve
  • office_names: a preferált irodák nevei
  • request_offer_par: indított kérések összértéke
  • accepted_bid_par: elfogadott ajánlatok összértéke
  • closed_par: lejárt ajánlatok összértéke
  • count_all: összes kérés száma
  • count_closed: lezárt (sikeres) kérések száma
  • count_pending: folyamatban lévő kérések száma
  • count_all_bid: az összes kapott ajánlat száma
  • average_count_bid: kapott ajánlatok átlagos száma

Szűrési lehetőségek:
  • ajánlatkérés időpontja
  • felhasználó neve

Rendezés:
  • felhasználói név szerint

-- ajánlatkérések listája felhasználónként összesítve
-- felhasználó, irodák, összesített összegek, ajánlatok átlagos száma, ajánlatkérések összesítése
WITH
  timelined_request_offer AS (
    SELECT
      tro.eid,
      min(tro.creation_time) AS creation_time
    FROM ukk.request_offer AS tro
    WHERE tro.status = 'active'
    GROUP BY tro.eid
  ), -- timelined_request_offer - kérések aktiválásának ideje
  voucher_pack AS (
    SELECT
     vp.eid,
     sum(pvt.par) AS par
    FROM ukk.simplelist_voucher_pack(now()) AS vp
      LEFT JOIN ukk.simplelist_pack_voucher_type() AS pvt
        ON (pvt.voucher_pack_id = vp.eid)
    WHERE vp.status != 'deleted'
    GROUP BY vp.eid
  ), -- voucher_pack - csomagok értéke
  outer_person AS (
    SELECT
      op.eid,
      coalesce(usr.user_name,op.user_name) AS user_name,
      coalesce(psn.person_fullname, psn.person_lastname ||' '|| psn.person_firstname, op.full_name) AS person_name,
      op.person_id,
      usr.user_id,
      op.financial_ident,
      op.email,
      op.phone_number
    FROM ukk.simplelist_outer_person() AS op
      LEFT JOIN ( bob.persons_active AS psn
        LEFT JOIN bob.users_active AS usr
          ON (usr.person_id = psn.person_id)
      ) ON (psn.person_id = op.person_id)
  ), -- outer_person - felhasználók és személyek adatai
  bid AS (
    SELECT
      bid.request_offer_id,
      array_agg(DISTINCT bid.status) AS statuses,
      count(bid.eid) AS count_bid
    FROM ukk.simplelist_bid(now()) AS bid
    WHERE bid.status NOT IN ('draft','deleted')
    GROUP BY bid.request_offer_id
  ), -- bid_first - kérésre érkező első ajánlat ideje
  accepted_bid AS (
    SELECT
      bid.request_offer_id,
      vp.par
    FROM ukk.bid AS bid
      LEFT JOIN voucher_pack AS vp
        ON (vp.eid = bid.supply_voucher_pack_id)
    WHERE bid.status IN ('accepted','closed')
  ) -- accepted_bid - elfogadott ajánlatok értéke
SELECT
  op.user_id,
  op.user_name,
  op.person_name,
  array_agg(DISTINCT ofc.short_name ORDER BY ofc.short_name) AS office_names,
  sum(vp.par) AS request_offer_par,
  coalesce(sum(accepted_bid.par), 0) AS accepted_bid_par,
  sum(CASE WHEN ro.status = 'closed' AND 'closed' = ANY(bid.statuses) THEN vp.par ELSE 0 END) AS closed_par,
  count(ro.eid) AS count_all,
  count((ro.status = 'closed' AND 'closed' = ANY(bid.statuses)) OR NULL) AS count_closed,
  count(('accepted' = ANY(bid.statuses)) OR (ro.status = 'active' AND 'closed' = ANY(bid.statuses)) OR NULL) AS count_pending,
  coalesce(sum(bid.count_bid),0) AS count_all_bid,
  round(coalesce(sum(bid.count_bid),0) / count(ro.eid), 2) AS average_count_bid
FROM ukk.simplelist_request_offer(now()) AS ro
  JOIN timelined_request_offer AS t_ro
    ON (t_ro.eid = ro.eid)
  JOIN outer_person AS op
    ON (op.eid = ro.outer_person_id)
  JOIN ukk.simplelist_office(now()) AS ofc
    ON (ofc.eid = ro.office_id)
  JOIN voucher_pack AS vp
    ON (vp.eid = ro.demand_voucher_pack_id)
  LEFT JOIN bid AS bid
    ON (bid.request_offer_id = ro.eid)
  LEFT JOIN accepted_bid AS accepted_bid
    ON (accepted_bid.request_offer_id = ro.eid)
WHERE ro.status != 'deleted'
--   AND t_ro.creation_time BETWEEN '2015-09-09' AND '2015-09-10' -- szűrés ajánlatkérés időpontja szerint
--   AND op.user_name = 'solyom.sandor' -- szűrés felhasználó szerint
GROUP BY
  op.user_id,
  op.user_name,
  op.person_name
ORDER BY op.user_name;

Kérésre adott ajánlatok listája

Tárolt eljárás neve: ukk.statdetails_bid(now())

Visszaadott értékek:
  • user_id: felhasználó azonosítója
  • user_name: felhasználói név
  • person_name: személy neve
  • bid_id: ajánlat rekord-azonosítója
  • request_offer_id: kérés rekord-azonosítója
  • office_id: iroda rekord-azonosítója
  • office_name: iroda rövid neve
  • request_offer_par: kérés összege
  • bid_par: elfogadott ajánlat összege
  • request_offer_status: kérés állapota
  • bid_status: ajánlat állapota
  • request_date: ajánlatkérés dátuma
  • request_time: ajánlatkérés ideje
  • bid_date: ajánlat dátuma
  • bid_time: ajánlat ideje

Szűrési lehetőségek:
  • ajánlattétel időpontja
  • ajánlatkérés időpontja
  • felhasználó neve

Rendezés:
  • felhasználói név + ajánlatadás ideje szerint

ORDER BY op.user_name, bid.creation_time;
-- kérésre adott ajánlatok listája
-- felhasználó, iroda, összegek, ajánlatkérések, időpontok
WITH
  timelined_request_offer AS (
    SELECT
      tro.eid,
      min(tro.creation_time) AS creation_time
    FROM ukk.request_offer AS tro
    WHERE tro.status = 'active'
    GROUP BY tro.eid
  ), -- timelined_request_offer - kérések aktiválásának ideje
  voucher_pack AS (
    SELECT
     vp.eid,
     sum(pvt.par) AS par
    FROM ukk.simplelist_voucher_pack(now()) AS vp
      LEFT JOIN ukk.simplelist_pack_voucher_type() AS pvt
        ON (pvt.voucher_pack_id = vp.eid)
    WHERE vp.status != 'deleted'
    GROUP BY vp.eid
  ), -- voucher_pack - csomagok értéke
  outer_person AS (
    SELECT
      op.eid,
      coalesce(usr.user_name,op.user_name) AS user_name,
      coalesce(psn.person_fullname, psn.person_lastname ||' '|| psn.person_firstname, op.full_name) AS person_name,
      op.person_id,
      usr.user_id,
      op.financial_ident,
      op.email,
      op.phone_number
    FROM ukk.simplelist_outer_person() AS op
      LEFT JOIN ( bob.persons_active AS psn
        LEFT JOIN bob.users_active AS usr
          ON (usr.person_id = psn.person_id)
      ) ON (psn.person_id = op.person_id)
  ) -- outer_person - felhasználók és személyek adatai
SELECT
  op.user_id,
  op.user_name,
  op.person_name,
  bid.eid AS bid_id,
  bid.request_offer_id,
  ro.office_id,
  ofc.short_name AS office_name,
  ro_vp.par AS request_offer_par,
  vp.par AS bid_par,
  ro.status AS request_offer_status,
  bid.status AS bid_status,
  CAST(t_ro.creation_time AS date) AS request_date,
  CAST(t_ro.creation_time AS timetz) AS request_time,
  CAST(bid.creation_time AS date) AS bid_date,
  CAST(bid.creation_time AS timetz) AS bid_time
FROM ukk.simplelist_bid(now()) AS bid
  JOIN ukk.simplelist_request_offer(now()) AS ro
    ON (ro.eid = bid.request_offer_id)
  JOIN timelined_request_offer AS t_ro
    ON (t_ro.eid = ro.eid)
  JOIN outer_person AS op
    ON (op.eid = bid.outer_person_id)
  JOIN ukk.simplelist_office(now()) AS ofc
    ON (ofc.eid = ro.office_id)
  JOIN voucher_pack AS vp
    ON (vp.eid = bid.supply_voucher_pack_id)
  JOIN voucher_pack AS ro_vp
    ON (ro_vp.eid = ro.demand_voucher_pack_id)
WHERE bid.status != 'deleted'
--   AND bid.creation_time BETWEEN '2015-09-09' AND '2015-09-10' -- szűrés ajánlattétel időpontja szerint
--   AND t_ro.creation_time BETWEEN '2015-09-09' AND '2015-09-10' -- szűrés ajánlatkérés időpontja szerint
--   AND op.user_name = 'solyom.sandor' -- szűrés felhasználó szerint
ORDER BY op.user_name, bid.creation_time;

Kérésre adott ajánlatok felhasználónként összesítve

Tárolt eljárás neve: ukk.statsummary_bid(now())

Visszaadott értékek:
  • user_id: felhasználó azonosítója
  • user_name: felhasználói név
  • person_name: személy neve
  • office_names: a preferált irodák nevei
  • request_offer_par: megválaszolt kérések összértéke
  • bid_par: ajánlatok összértéke
  • count_all: adott ajánlatok száma
  • count_rejected: elutasított ajánlatok száma
  • count_pending: folyamatban lévő ajánlatok száma
  • count_closed: lezárt (sikeres) ajánlatok száma

Szűrési lehetőségek:
  • ajánlattétel időpontja
  • ajánlatkérés időpontja
  • felhasználó neve

Rendezés:
  • felhasználói név szerint

-- kérésre adott ajánlatok felhasználónként összesítve
-- felhasználó, irodák, összesített összegek, ajánlatok összesítése
WITH
  timelined_request_offer AS (
    SELECT
      tro.eid,
      min(tro.creation_time) AS creation_time
    FROM ukk.request_offer AS tro
    WHERE tro.status = 'active'
    GROUP BY tro.eid
  ), -- timelined_request_offer - kérések aktiválásának ideje
  voucher_pack AS (
    SELECT
     vp.eid,
     sum(pvt.par) AS par
    FROM ukk.simplelist_voucher_pack(now()) AS vp
      LEFT JOIN ukk.simplelist_pack_voucher_type() AS pvt
        ON (pvt.voucher_pack_id = vp.eid)
    WHERE vp.status != 'deleted'
    GROUP BY vp.eid
  ), -- voucher_pack - csomagok értéke
  outer_person AS (
    SELECT
      op.eid,
      coalesce(usr.user_name,op.user_name) AS user_name,
      coalesce(psn.person_fullname, psn.person_lastname ||' '|| psn.person_firstname, op.full_name) AS person_name,
      op.person_id,
      usr.user_id,
      op.financial_ident,
      op.email,
      op.phone_number
    FROM ukk.simplelist_outer_person() AS op
      LEFT JOIN ( bob.persons_active AS psn
        LEFT JOIN bob.users_active AS usr
          ON (usr.person_id = psn.person_id)
      ) ON (psn.person_id = op.person_id)
  ) -- outer_person - felhasználók és személyek adatai
SELECT
  op.user_id,
  op.user_name,
  op.person_name,
  array_agg(DISTINCT ofc.short_name ORDER BY ofc.short_name) AS office_names,
  sum(ro_vp.par) AS request_offer_par,
  sum(vp.par) AS bid_par,
  count(bid.eid) AS count_all,
  count((bid.status = 'rejected') OR NULL) AS count_rejected,
  count((bid.status = 'accepted') OR (bid.status = 'closed' AND ro.status != 'closed') OR NULL) AS count_pending,
  count((bid.status = 'closed' AND ro.status = 'closed') OR NULL) AS count_closed
FROM ukk.simplelist_bid(now()) AS bid
  JOIN ukk.simplelist_request_offer(now()) AS ro
    ON (ro.eid = bid.request_offer_id)
  JOIN timelined_request_offer AS t_ro
    ON (t_ro.eid = ro.eid)
  JOIN outer_person AS op
    ON (op.eid = bid.outer_person_id)
  JOIN ukk.simplelist_office(now()) AS ofc
    ON (ofc.eid = ro.office_id)
  JOIN voucher_pack AS vp
    ON (vp.eid = bid.supply_voucher_pack_id)
  JOIN voucher_pack AS ro_vp
    ON (ro_vp.eid = ro.demand_voucher_pack_id)
WHERE bid.status != 'deleted'
--   AND bid.creation_time BETWEEN '2015-09-09' AND '2015-09-10' -- szűrés ajánlattétel időpontja szerint
--   AND t_ro.creation_time BETWEEN '2015-09-09' AND '2015-09-10' -- szűrés ajánlatkérés időpontja szerint
--   AND op.user_name = 'solyom.sandor' -- szűrés felhasználó szerint
GROUP BY
  op.user_id,
  op.user_name,
  op.person_name
ORDER BY op.user_name;

Adott ügylet története

Tárolt eljárás neve: ukk.timeline_request(now())

Visszaadott értékek:
  • entity: 'request_offer':ajánlatkérés, 'bid':ajánlat
  • eid: egyed azonosítója
  • id: rekord azonosítója
  • change_date: változás dátuma
  • change_time: változás ideje
  • status: rekord állapota
  • request_offer_id: ajánlatkérés egyed-azonosítója
  • offering_type_label: ajánlatkérés típusa
  • offering_type: ajánlatkérés típusa
  • is_complaint: központi lezárásra vár?
  • for_par: kérés összege
  • to_par: ajánlott összeg
  • user_id: felhasználó azonosítója
  • user_name: felhasználói név
  • person_name: személy neve
  • office_id: iroda azonosítója
  • office_name: iroda neve

Szűrési lehetőségek:
  • ajánlatkérés azonosítója

Rendezés:
  • változás időpontja szerint

-- adott ügylet története
WITH
  outer_person AS (
    SELECT
      op.eid,
      coalesce(usr.user_name,op.user_name) AS user_name,
      coalesce(psn.person_fullname, psn.person_lastname ||' '|| psn.person_firstname, op.full_name) AS person_name,
      op.person_id,
      usr.user_id,
      op.financial_ident,
      op.email,
      op.phone_number
    FROM ukk.simplelist_outer_person() AS op
      LEFT JOIN ( bob.persons_active AS psn
        LEFT JOIN bob.users_active AS usr
          ON (usr.person_id = psn.person_id)
      ) ON (psn.person_id = op.person_id)
  ), -- outer_person - felhasználók és személyek adatai
  office AS (
    SELECT
      ofc.eid,
      ofc.short_name AS office_name
    FROM ukk.simplelist_office(now()) AS ofc
  ), -- office
  voucher_pack AS (
    SELECT
     vp.eid,
     sum(pvt.par) AS par
    FROM ukk.simplelist_voucher_pack(now()) AS vp
      LEFT JOIN ukk.simplelist_pack_voucher_type() AS pvt
        ON (pvt.voucher_pack_id = vp.eid)
    WHERE vp.status != 'deleted'
    GROUP BY vp.eid
  ), -- voucher_pack - csomagok értéke
  accepted_bid AS (
    SELECT
      bid.request_offer_id,
      vp.par
    FROM ukk.bid AS bid
      LEFT JOIN voucher_pack AS vp
        ON (vp.eid = bid.supply_voucher_pack_id)
    WHERE bid.status IN ('accepted','closed')
      AND bid.request_offer_id = 6--ro_id
  ), -- accepted_bid - elfogadott ajánlatok értéke
  timelined_request_offer AS (
    SELECT CAST('request_offer' AS varchar) AS entity,
      ro.eid,
      ro.id,
      ro.creation_time AS change_time,
      ro.status,
      ro.eid AS request_offer_id,
      vp.par AS for_par,
      s_vp.par AS to_par,
      op.user_id,
      op.user_name,
      op.person_name,
      ofc.eid AS office_id,
      ofc.office_name,
      ot.label AS offering_type_label,
      CAST(ot.short_name AS varchar) AS offering_type,
      ro.is_complaint
    FROM ukk.request_offer AS ro
      JOIN outer_person AS op
        ON (op.eid = ro.outer_person_id)
      LEFT JOIN voucher_pack AS vp
        ON (vp.eid = ro.demand_voucher_pack_id)
      LEFT JOIN voucher_pack AS s_vp
        ON (s_vp.eid = ro.supply_voucher_pack_id)
      LEFT JOIN office AS ofc
        ON (ofc.eid = ro.office_id)
      LEFT JOIN ukk.simplelist_offering_type(now()) AS ot
        ON (ot.eid = ro.offering_type_id)
    WHERE ro.eid = 6--ro_id
    ORDER BY ro.creation_time
  ), -- timelined_request_offer - kérés idősora
  timelined_bid AS (
    SELECT CAST('bid' AS varchar) AS entity,
      bid.eid,
      bid.id,
      bid.creation_time AS change_time,
      bid.status,
      bid.request_offer_id,
      vp.par AS for_par,
      s_vp.par AS to_par,
      op.user_id,
      op.user_name,
      op.person_name,
      ofc.eid AS office_id,
      ofc.office_name,
      ot.label AS offering_type_label,
      CAST(ot.short_name AS varchar) AS offering_type,
      ro.is_complaint
    FROM ukk.bid AS bid
      JOIN ukk.simplelist_request_offer(now()) AS ro
        ON (ro.eid = bid.request_offer_id)
      JOIN outer_person AS op
        ON (op.eid = bid.outer_person_id)
      LEFT JOIN voucher_pack AS vp
        ON (vp.eid = bid.demand_voucher_pack_id)
      LEFT JOIN voucher_pack AS s_vp
        ON (s_vp.eid = bid.supply_voucher_pack_id)
      LEFT JOIN office AS ofc
        ON (ofc.eid = bid.office_id)
      LEFT JOIN ukk.simplelist_offering_type(now()) AS ot
        ON (ot.eid = ro.offering_type_id)
    WHERE bid.request_offer_id = 6--ro_id
    ORDER BY bid.creation_time
  ) -- timelined_request_offer - kérés idősora
SELECT
  entity,
  eid,
  id,
  CAST(change_time AS date) AS change_date,
  CAST(change_time AS timetz) AS change_time,
  status,
  request_offer_id,
  offering_type_label,
  offering_type,
  is_complaint,
  for_par,
  to_par,
  user_id,
  user_name,
  person_name,
  office_id,
  office_name
FROM (
  SELECT *
  FROM timelined_request_offer AS ro
  UNION
  SELECT *
  FROM timelined_bid AS bid
) AS timeline
ORDER BY timeline.change_time;

Nyitott ügyletek listája

Tárolt eljárás neve: ukk.list_open_request(now())

Visszaadott értékek:
  • eid: ajánlatkérés rekord-azonosítója
  • request_offer_id: ajánlatkérés rekord-azonosítója
  • request_offer_status: ajánlatkérés állapota
  • bid_id: ajánlat rekord-azonosítója
  • bid_status: ajánlat állapota
  • is_complaint: központi döntésre vár?
  • par: ajánlatkérés összege
  • bid_par: ajánlat összege
  • creation_date: utalványcsomag létrehozásának dátuma
  • creation_time: utalványcsomag létrehozásának ideje
  • request_date: ajánlatkérés aktiválásának dátuma
  • request_time: ajánlatkérés aktiválásának ideje
  • last_modification_date: ajánlatkérés utolsó módosításának dátuma
  • last_modification_time: ajánlatkérés utolsó módosításának ideje
  • accept_bid_date: ajánlat elfogadásának dátuma
  • accept_bid_time: ajánlat elfogadásának ideje
  • request_offer_outer_person_id: ajánlatkérő személy azonosítója
  • request_offer_user_id: ajánlatkérő felhasználó azonosítója
  • request_offer_user_name: ajánlatkérő felhasználó neve
  • request_offer_person_name: ajánlatkérő személy neve
  • bid_outer_person_id: ajánlatadó személy azonosítója
  • bid_user_id: ajánlatadó felhasználó azonosítója
  • bid_user_name: ajánlatadó felhasználó neve
  • bid_person_name: ajánlatadó személy neve
  • voucher_pack_id: ajánlatkérés utalványcsomag azonosítója
  • bid_voucher_pack_id: ajánlat utalványcsomag azonosítója
  • city_id: település azonosítója
  • office_name: iroda neve
  • count_bid: ajánlatkérésre adott ajánlatok száma

Szűrési lehetőségek:
  • -

Rendezés:
  • ajánlat elfogadásának időpontja szerint

-- nyitott ügyletek listája
WITH
  outer_person AS (
  SELECT
    op.eid,
    coalesce(usr.user_name,op.user_name) AS user_name,
    coalesce(psn.person_fullname, psn.person_lastname ||' '|| psn.person_firstname, op.full_name) AS person_name,
    op.person_id,
    usr.user_id,
    op.financial_ident,
    op.email,
    op.phone_number
  FROM ukk.simplelist_outer_person() AS op
    LEFT JOIN ( bob.persons_active AS psn
      LEFT JOIN bob.users_active AS usr
        ON (usr.person_id = psn.person_id)
    ) ON (psn.person_id = op.person_id)
  ), -- outer_person - felhasználók és személyek adatai
  create_request_offer AS (
    SELECT
      tro.eid,
      tro.creation_time
    FROM ukk.request_offer AS tro
    WHERE tro.id = tro.eid
  ), -- active_request_offer - kérések aktiválásának ideje
  active_request_offer AS (
    SELECT
      tro.eid,
      min(tro.creation_time) AS creation_time
    FROM ukk.request_offer AS tro
    WHERE tro.status = 'active'
    GROUP BY tro.eid
  ), -- active_request_offer - kérések aktiválásának ideje
  voucher_pack AS (
    SELECT
      pvt.voucher_pack_id AS eid,
      vp.description,
      sum(coalesce(pvt.par,0)) AS par,
      array_agg(distinct pvt.voucher_type_id) as voucher_type_ids
    FROM ukk.simplelist_pack_voucher_type() AS pvt
      JOIN ukk.simplelist_voucher_pack(now()) AS vp
        ON (vp.eid = pvt.voucher_pack_id)
    WHERE pvt.status != 'deleted'
    GROUP BY pvt.voucher_pack_id, vp.description
  ), -- voucher_pack
  bid AS (
    SELECT
      bid.request_offer_id,
      count(bid.eid) AS count_bid
    FROM ukk.simplelist_bid(now()) AS bid
    WHERE bid.status != 'deleted'
    GROUP BY bid.request_offer_id
  ), -- bid
  bid_accept_time AS (
    SELECT
      min(bid.request_offer_id) AS request_offer_id,
      min(bid.creation_time) AS creation_time
    FROM ukk.bid AS bid
    WHERE bid.status = 'accepted'
    GROUP BY bid.eid
  ), -- bid_accept_time - ajánlat elfogadásának ideje
  accepted_bid AS (
    SELECT
      bid.eid,
      bid.request_offer_id,
      bid.status,
      vp.eid AS voucher_pack_id,
      vp.par,
      bid.outer_person_id,
      op.user_id,
      op.user_name,
      op.person_name
    FROM ukk.bid AS bid
      JOIN voucher_pack AS vp
        ON (vp.eid = bid.supply_voucher_pack_id)
      JOIN outer_person AS op
        ON (op.eid = bid.outer_person_id)
    WHERE bid.status IN ('accepted','closed')
  ) -- accepted_bid - elfogadott ajánlatok értéke
SELECT
  ro.eid,
  ro.eid AS request_offer_id,
  ro.status AS request_offer_status,
  accepted_bid.eid AS bid_id,
  accepted_bid.status AS bid_status,
  ro.is_complaint,
  vp.par,
  accepted_bid.par AS bid_par,
  CAST(c_ro.creation_time AS date) AS creation_date,
  CAST(c_ro.creation_time AS timetz) AS creation_time,
  CAST(a_ro.creation_time AS date) AS request_date,
  CAST(a_ro.creation_time AS timetz) AS request_time,
  CAST(coalesce(ro.modification_time,ro.creation_time) AS date) AS last_modification_date,
  CAST(coalesce(ro.modification_time,ro.creation_time) AS timetz) AS last_modification_time,
  CAST(a_bid.creation_time AS date) AS accept_bid_date,
  CAST(a_bid.creation_time AS timetz) AS accept_bid_time,
  ro.outer_person_id AS request_offer_outer_person_id,
  op.user_id AS request_offer_user_id,
  op.user_name AS request_offer_user_name,
  op.person_name AS request_offer_person_name,
  accepted_bid.outer_person_id AS bid_outer_person_id,
  accepted_bid.user_id AS bid_user_id,
  accepted_bid.user_name AS bid_user_name,
  accepted_bid.person_name AS bid_person_name,
  vp.eid AS voucher_pack_id,
  accepted_bid.voucher_pack_id AS bid_voucher_pack_id,
  ofc.city_id,
  ofc.short_name AS office_name,
  CAST(coalesce(bid.count_bid,0) AS integer) AS count_bid
FROM ukk.simplelist_request_offer(now()) AS ro
  JOIN voucher_pack AS vp
    ON (vp.eid = ro.demand_voucher_pack_id)
  JOIN create_request_offer AS c_ro
    ON (c_ro.eid = ro.eid)
  LEFT JOIN active_request_offer AS a_ro
    ON (a_ro.eid = ro.eid)
  JOIN bid AS bid
    ON (bid.request_offer_id = ro.eid)
  JOIN accepted_bid AS accepted_bid
    ON (accepted_bid.request_offer_id = ro.eid)
  JOIN bid_accept_time AS a_bid
    ON (a_bid.request_offer_id = ro.eid)
  JOIN outer_person AS op
    ON (op.eid = ro.outer_person_id)
  LEFT JOIN ukk.simplelist_office(now()) as ofc
    ON (ofc.eid = ro.office_id)
WHERE ( ro.status = 'closed' AND accepted_bid.status = 'accepted' )
  OR ( ro.status = 'active' AND accepted_bid.status = ANY(ARRAY['accepted','closed']))
ORDER BY a_bid.creation_time DESC;

Lezárt ügyletek listája

Tárolt eljárás neve: ukk.list_closed_request(now())

Visszaadott értékek:
  • request_offer_id: ajánlatkérés rekord-azonosítója
  • bid_id: ajánlat rekord-azonosítója
  • close_date: ajánlatkérés lezárásának dátuma
  • close_time: ajánlatkérés lezárásának ideje
  • request_offer_user_id: ajánlatkérő felhasználó azonosítója
  • request_offer_user_name: ajánlatkérő felhasználó neve
  • request_offer_person_name: ajánlatkérő személy neve
  • bid_user_id: ajánlatadó felhasználó azonosítója
  • bid_user_name: ajánlatadó felhasználó neve
  • bid_person_name: ajánlatadó személy neve
  • office_id: iroda azonosítója
  • office_name: iroda neve
  • request_offer_par: ajánlatkérések összértéke
  • bid_par: ajánlatok összértéke
  • profit: nyereség

Szűrési lehetőségek:
  • irodák szerint
  • ajánlatkérés zárásának időpontja szerint

Rendezés:
  • ajánlatkérés lezárása szerint

-- lezárt ügyletek listája
WITH
  outer_person AS (
    SELECT
      op.eid,
      coalesce(usr.user_name,op.user_name) AS user_name,
      coalesce(psn.person_fullname, psn.person_lastname ||' '|| psn.person_firstname, op.full_name) AS person_name,
      op.person_id,
      usr.user_id,
      op.financial_ident,
      op.email,
      op.phone_number
    FROM ukk.simplelist_outer_person() AS op
      LEFT JOIN ( bob.persons_active AS psn
        LEFT JOIN bob.users_active AS usr
          ON (usr.person_id = psn.person_id)
      ) ON (psn.person_id = op.person_id)
  ), -- outer_person - felhasználók és személyek adatai
  voucher_pack AS (
    SELECT
      pvt.voucher_pack_id AS eid,
      vp.description,
      sum(coalesce(pvt.par,0)) AS par,
      array_agg(distinct pvt.voucher_type_id) as voucher_type_ids
    FROM ukk.simplelist_pack_voucher_type() AS pvt
      JOIN ukk.simplelist_voucher_pack(now()) AS vp
        ON (vp.eid = pvt.voucher_pack_id)
    WHERE pvt.status != 'deleted'
    GROUP BY pvt.voucher_pack_id, vp.description
  ), -- voucher_pack
  bid AS (
    SELECT
      bid.eid,
      bid.request_offer_id,
      bid.outer_person_id,
      vp.par
    FROM ukk.bid AS bid
      JOIN voucher_pack AS vp
        ON (vp.eid = bid.supply_voucher_pack_id)
    WHERE bid.status = 'closed'
  ) -- bid - elfogadott ajánlatok értéke
SELECT
  ro.eid AS request_offer_id,
  bid.eid As bid_id,
  CAST(coalesce(ro.modification_time,ro.creation_time) AS date) AS close_date,
  CAST(coalesce(ro.modification_time,ro.creation_time) AS timetz) AS close_time,
  ro_op.user_id AS request_offer_user_id,
  ro_op.user_name AS request_offer_user_name,
  ro_op.person_name AS request_offer_person_name,
  bid_op.user_id AS bid_user_id,
  bid_op.user_name AS bid_user_name,
  bid_op.person_name AS bid_person_name,
  ro.office_id,
  ofc.short_name AS office_name,
  vp.par AS request_offer_par,
  bid.par AS bid_par,
  100-(vp.par/bid.par*100) AS profit
FROM ukk.simplelist_request_offer(now()) AS ro
  JOIN outer_person AS ro_op
    ON (ro_op.eid = ro.outer_person_id)
  JOIN voucher_pack AS vp
    ON (vp.eid = ro.demand_voucher_pack_id)
  JOIN bid AS bid
    ON (bid.request_offer_id = ro.eid)
  JOIN outer_person AS bid_op
    ON (bid_op.eid = bid.outer_person_id)
  JOIN ukk.simplelist_office(now()) AS ofc
    ON (ofc.eid = ro.office_id)
WHERE ro.status = 'closed'
--   AND ro.office_id = 1
--   AND coalesce(ro.modification_time,ro.creation_time) BETWEEN '2015-09-06' AND '2015-10-08' -- szűrés zárás időpontja szerint
ORDER BY coalesce(ro.modification_time,ro.creation_time);

Forgalom (lezárt ügyletek összesítése) irodák szerinti bontásban

Tárolt eljárás neve: ukk.stat_closed_request(now())

Visszaadott értékek:
  • office_id: iroda azonosítója
  • office_name: iroda neve
  • request_offer_par: ajánlatkérések összértéke
  • bid_par: ajánlatok összértéke
  • profit: nyereség

Szűrési lehetőségek:
  • ajánlatkérés lezárása

Rendezés:
  • iroda neve szerint

-- forgalom (lezárt ügyletek összesítése) irodák szerinti bontásban
WITH
  voucher_pack AS (
    SELECT
      pvt.voucher_pack_id AS eid,
      vp.description,
      sum(coalesce(pvt.par,0)) AS par,
      array_agg(distinct pvt.voucher_type_id) as voucher_type_ids
    FROM ukk.simplelist_pack_voucher_type() AS pvt
      JOIN ukk.simplelist_voucher_pack(now()) AS vp
        ON (vp.eid = pvt.voucher_pack_id)
    WHERE pvt.status != 'deleted'
    GROUP BY pvt.voucher_pack_id, vp.description
  ), -- voucher_pack
  bid AS (
    SELECT
      bid.eid,
      bid.request_offer_id,
      vp.par
    FROM ukk.bid AS bid
      JOIN voucher_pack AS vp
        ON (vp.eid = bid.supply_voucher_pack_id)
    WHERE bid.status = 'closed'
  ) -- bid - elfogadott ajánlatok értéke
SELECT
  ro.office_id,
  ofc.short_name AS office_name,
  sum(vp.par) AS request_offer_par,
  sum(bid.par) AS bid_par,
  100-(sum(vp.par)/sum(bid.par)*100) AS profit
FROM ukk.simplelist_request_offer(now()) AS ro
  JOIN voucher_pack AS vp
    ON (vp.eid = ro.demand_voucher_pack_id)
  JOIN bid AS bid
    ON (bid.request_offer_id = ro.eid)
  JOIN ukk.simplelist_office(now()) AS ofc
    ON (ofc.eid = ro.office_id)
WHERE ro.status = 'closed'
--   AND coalesce(ro.modification_time,ro.creation_time) BETWEEN '2015-09-06' AND '2015-10-08' -- szűrés zárás időpontja szerint
GROUP BY ro.office_id, ofc.short_name
ORDER BY ofc.short_name;

Utalványcsomag ellenőrzéskor felmerült jelzések

Tárolt eljárás neve: ukk.statdetails_event(now())

Visszaadott értékek:
  • event_id: esemény rekord-azonosítója
  • event_date: esemény dátuma
  • event_time: esemény ideje
  • par: utalványcsomag értéke
  • user_id: felhasználó rekord-azonosítója
  • outer_person_id: külső felhasználó
  • user_name: felhasználók neve
  • person_name: személy neve
  • request_offer_id: ajánlatkérés rekord-azonosítója
  • voucher_pack_id: utalványcsomag rekord-azonosítója
  • entity_name: kapcsolódó entitás (request_offer:ajánlatkérés, bid:ajánlat))
  • entity_id: kapcsolódó entitás azonosítója
  • event_type_label: eseménytípus azonosító címkéje
  • event_type_name: eseménytípus neve
  • event_type_full_name: eseménytípus teljes neve
  • color_code: eseménytípus színkódja
  • is_show: felhasználó előtt megjelenítendő:
  • mandator_name: kibocsátó neve
  • voucher_type_name: utalványtípus neve
  • denomination_name: címlet
  • validity_date: utalványok érvényességének lejárta
  • prefix: előteg
  • suffix: utótag
  • start_number: kezdő sorszám
  • end_number: záró sorszám

Szűrési lehetőségek:
  • esemény típusa szerint
  • esemény időpontja szerint

Rendezés:
  • esemény időpontja szerint

-- utalványcsomag ellenőrzéskor felmerült jelzések
WITH
  outer_person AS (
  SELECT
    op.eid,
    coalesce(usr.user_name,op.user_name) AS user_name,
    coalesce(psn.person_fullname, psn.person_lastname ||' '|| psn.person_firstname, op.full_name) AS person_name,
    op.person_id,
    usr.user_id,
    op.financial_ident,
    op.email,
    op.phone_number
  FROM ukk.simplelist_outer_person() AS op
    LEFT JOIN ( bob.persons_active AS psn
      LEFT JOIN bob.users_active AS usr
        ON (usr.person_id = psn.person_id)
    ) ON (psn.person_id = op.person_id)
  ), -- outer_person - felhasználók és személyek adatai
  voucher_pack AS (
    SELECT
      pvt.voucher_pack_id AS eid,
      sum(coalesce(pvt.par,pvt.quantity,0)) AS par
    FROM ukk.simplelist_pack_voucher_type() AS pvt
      JOIN ukk.simplelist_voucher_pack(now()) AS vp
        ON (vp.eid = pvt.voucher_pack_id)
    WHERE pvt.status != 'deleted'
    GROUP BY pvt.voucher_pack_id
  ), -- voucher_pack
  serial_interval_of_event AS (
    SELECT
      sie.event_id,
      mdt.short_name AS mandator_name,
      vt.short_name AS voucher_type_name,
      coalesce(den.full_name,den.short_name) AS denomination_name,
      sie.validity_date,
      sie.prefix,
      sie.suffix,
      sie.start_number,
      sie.end_number
    FROM ukk.simplelist_serial_interval_of_event() AS sie
      JOIN ukk.simplelist_pack_denomination() AS pd
        ON (pd.eid = sie.pack_denomination_id)
      JOIN ukk.simplelist_voucher_type_denomination() AS vtd
        ON (pd.voucher_type_denomination_id = vtd.eid)
      JOIN ukk.simplelist_voucher_type(now()) AS vt
        ON (vt.eid = vtd.voucher_type_id)
      JOIN ukk.simplelist_mandator() AS mdt
        ON (mdt.label = vt.mandator_label)
      JOIN ukk.simplelist_denomination(now()) AS den
        ON (den.eid = vtd.denomination_id)
    WHERE sie.status != 'deleted'
    order by event_id
  ) -- serial_interval_of_event
SELECT
  evnt.eid AS event_id,
  CAST(evnt.creation_time AS date) AS event_date,
  CAST(evnt.creation_time AS timetz) AS event_time,
  vp.par,
  evnt.user_id,
  op.eid AS outer_person_id,
  op.user_name AS user_name,
  op.person_name AS person_name,
  evnt.request_offer_id,
  evnt.voucher_pack_id,
  CASE WHEN ro.eid IS NOT NULL THEN
    'request_offer'
  ELSE
    CASE WHEN bid.eid IS NOT NULL THEN
      'bid'
    ELSE
      CAST(NULL AS varchar)
    END
  END AS entity_name,
  coalesce(ro.eid,bid.eid) AS entity_id,
  evnt.event_type_label,
  et.short_name AS event_type_name,
  et.full_name AS event_type_full_name,
  et.color_code,
  et.is_show,
  sie.mandator_name,
  sie.voucher_type_name,
  sie.denomination_name,
  sie.validity_date,
  sie.prefix,
  sie.suffix,
  sie.start_number,
  sie.end_number
FROM ukk.simplelist_event() AS evnt
  JOIN ukk.simplelist_event_type() AS et
    ON (et.label = evnt.event_type_label)
  LEFT JOIN outer_person AS op
    ON (op.user_id = evnt.user_id)
  LEFT JOIN voucher_pack AS vp
    ON (vp.eid = evnt.voucher_pack_id)
  LEFT JOIN serial_interval_of_event AS sie
    ON (sie.event_id = evnt.eid)
  LEFT JOIN ukk.simplelist_request_offer(now()) AS ro
    ON (ro.eid = evnt.request_offer_id AND ro.demand_voucher_pack_id = evnt.voucher_pack_id)
  LEFT JOIN ukk.simplelist_bid(now()) AS bid
    ON (bid.request_offer_id = evnt.request_offer_id AND bid.supply_voucher_pack_id = evnt.voucher_pack_id)
WHERE evnt.status != 'deleted'
--   AND evnt.event_type_label = 'large_value_pack'
--   AND evnt.creation_time BETWEEN '2015-09-06' AND '2015-09-10' -- szűrés esemény időpontja szerint
ORDER BY evnt.creation_time;