CREATE VIEW vwevaluationoverview AS (
SELECT concat(evaldata.conversationid, '|', evaldata.evaluationid, '|', evaldata.evaluationformid) AS keyid,
evaldata.conversationid,
concat('Conversation ID: ', evaldata.conversationid) AS "Title Conv",
evaldata.evaluationid,
concat('Eval ID: ', evaldata.evaluationid) AS "Title Eval",
CASE
WHEN (evaldata.calibrationid IS NULL) THEN false
ELSE true
END AS iscalibration,
evaldata.evaluationformid,
evaldata.evaluatorid,
concat('Evaluator: ', vwuserdetail.name) AS "Title Evaluator",
evaldata.userid,
evaldata.status,
evaldata.totalscore,
evaldata.totalcriticalscore,
evaldata.totalnoncriticalscore,
((evaldata.agenthasread)::character varying)::boolean AS agenthasread,
evaldata.releasedate,
evaldata.releasedateltc,
(evaldata.releasedateltc + ((( SELECT timezonecalcs.diff
FROM timezonecalcs('Australia/Sydney'::text) timezonecalcs(utctime, ltctime, diff, timezonechosen)))::double precision * '00:00:01'::interval)) AS releasedateusrtz,
evaldata.assigneddate,
evaldata.assigneddateltc,
userdetails.name AS "Agent Name",
userdetails.department AS "Agent Dept",
userdetails.managerid AS "Agent Manager Id",
userdetails.managername AS "Agent Manager Name",
userdetails.divisionid AS "Agent Div",
vwuserdetail.name AS "Evaluator Name",
vwuserdetail.managerid AS "Evaluator Manager Id",
vwuserdetail.managername AS "Evaluator Manager Name",
convsumm.conversationstartdate AS convstartdate,
convsumm.conversationenddate AS convenddate,
((sum(evaldata.totalscore) / (count(evaldata.conversationid))::numeric))::integer AS average_score,
CASE
WHEN (evaldata.totalscore > (80)::numeric) THEN 1
ELSE 0
END AS over80,
convsumm.firstqueuename AS queuename,
convsumm.firstmediatype AS mediatype
FROM (((evaldata evaldata
LEFT JOIN vwuserdetail userdetails ON (((evaldata.userid)::text = (userdetails.id)::text)))
LEFT JOIN vwuserdetail vwuserdetail ON (((evaldata.evaluatorid)::text = (vwuserdetail.id)::text)))
LEFT JOIN vwconvsummarydata convsumm ON (((convsumm.conversationid)::text = (evaldata.conversationid)::text)))
WHERE ((evaldata.status)::text = 'FINISHED'::text)
GROUP BY convsumm.conversationenddate, convsumm.conversationstartdate, convsumm.firstmediatype, convsumm.firstqueuename, evaldata.agenthasread, evaldata.assigneddate, evaldata.assigneddateltc, evaldata.calibrationid, evaldata.conversationid, evaldata.evaluationformid, evaldata.evaluationid, evaldata.evaluatorid, evaldata.releasedate, evaldata.releasedateltc, evaldata.status, evaldata.totalcriticalscore, evaldata.totalnoncriticalscore, evaldata.totalscore, evaldata.userid, userdetails.department, userdetails.divisionid, userdetails.managerid, userdetails.managername, userdetails.name, vwuserdetail.managerid, vwuserdetail.managername, vwuserdetail.name
)