Files
Customer/onces/KFHT/kfht#34512.sql
Maarten van der Heide dd8c0c53a0 KFHT#34512 Exact-koppeling
svn path=/Customer/; revision=30039
2016-07-13 16:12:29 +00:00

161 lines
6.6 KiB
SQL

-- Customer specific once-script KFHT#34512.
--
-- (c) 2016 Facilitor B.V.
--
-- Support: +31 53 4800700
SET ECHO ON
SPOOL xKFHT34512.lst
SET DEFINE OFF
-- Eenmalig de charset van de EXACT-export (key=1) op utf-8 zetten!
UPDATE fac_export_app
SET fac_export_app_charset = 'utf-8'
WHERE fac_export_app_key = 1;
-- Eenmalig de charset van de EXACT-import (key=61) op utf-8 zetten!
UPDATE fac_import_app
SET fac_import_app_charset = 'utf-8'
WHERE fac_import_app_key = 61;
-- Speciale eenmalige versie om export te draaien over periode van 1-6-2016 t/m vandaag.
-- NIET VERGETEN om daarna dagelijkse export over gisteren weer te activeren (kfht.sql)!
CREATE OR REPLACE PROCEDURE kfht_select_exact (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR c_opdr
IS
SELECT DISTINCT
o.mld_melding_key,
o.mld_opdr_bedrijfopdr_volgnr,
sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
ticketnumber,
ot.mld_typeopdr_omschrijving ordertype,
a.prs_afdeling_omschrijving department,
b.prs_bedrijf_naam supplier,
SUBSTR (c.cnt_contract_nummer || DECODE (kl.jaarorder, NULL, '', '/' || kl.jaarorder), 1, 30)
contract,
td.ins_discipline_omschrijving || ' / ' || sm.mld_stdmelding_omschrijving
reporttype,
aog.alg_gebouw_code buildingcode,
kp.prs_kostenplaats_nr costcenter,
COALESCE (ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms)
costunit,
o.mld_opdr_kosten costs,
b.prs_leverancier_nr supplierreference,
--TO_CHAR (fac.gettrackingdate ('ORDNEW', o.mld_opdr_key), 'dd-mm-yyyy hh24:mi:ss')
TO_CHAR (o.mld_opdr_datumbegin, 'dd-mm-yyyy')
|| 'T' || TO_CHAR (o.mld_opdr_datumbegin, 'hh24:mi:ss')
issued,
TO_CHAR (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key), 'dd-mm-yyyy')
|| 'T' || TO_CHAR (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key), 'hh24:mi:ss')
closed
FROM mld_opdr o,
fac_tracking t,
mld_typeopdr ot,
prs_bedrijf b,
cnt_contract c,
prs_kostenplaats kp,
mld_melding m,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostensoort ksm,
prs_kostensoort ksv,
prs_perslid p,
alg_v_allonrgoed_gegevens aog,
prs_afdeling a,
(SELECT prs_link_key, prs_kenmerklink_waarde jaarorder
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1060) kl -- Inkoopordernummer!
WHERE o.mld_statusopdr_key IN (6, 9, 7) -- Afgemeld/Afgerond/Verwerkt
AND o.mld_opdr_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key IN (59, 61) -- ORDAFM/ORDUPD
--AND t.fac_tracking_datum > TRUNC (SYSDATE - 1) -- Export draait na middernacht!
--AND t.fac_tracking_datum < TRUNC (SYSDATE) -- VAN 1-1-2016 TOT VANDAAG; SPECIALE EENMALIGE VERSIE!
AND t.fac_tracking_datum BETWEEN TO_DATE ('010616', 'ddmmyy') AND TRUNC (SYSDATE) -- VAN 1-6-2016 TOT VANDAAG; SPECIALE EENMALIGE VERSIE!
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND ot.mld_typeopdr_key != 8 -- Geen Offerteaanvraag
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key -- Geen Interne opdracht, tenzij
AND b.prs_leverancier_nr IS NOT NULL -- Alleen bedrijven met leveranciernummer!
AND o.cnt_contract_key = c.cnt_contract_key(+)
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
AND m.prs_perslid_key = p.prs_perslid_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = kl.prs_link_key(+)
ORDER BY o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr;
v_count NUMBER;
PROCEDURE add_row (p_regel IN VARCHAR2)
AS
BEGIN
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel)
VALUES (SUBSTR (p_applname, 1, 12), v_count, p_regel);
v_count := v_count + 1;
END;
PROCEDURE add_element (p_tag IN VARCHAR2, p_value IN VARCHAR2)
AS
BEGIN
add_row( '<'
|| p_tag
|| '>'
|| xml.char_to_html (p_value)
|| '</'
|| p_tag
|| '>');
END;
BEGIN
v_count := 0;
DELETE fac_rapport
WHERE fac_rapport_node = SUBSTR (p_applname, 1, 12);
-- Header
add_row ('<?xml version="1.0" encoding="utf-8" standalone="yes" ?>');
add_row ('<eExact>');
add_row ('<FacilitorImport>');
--add_row ('<Tickets>');
FOR rec IN c_opdr
LOOP
BEGIN
add_row ('<Ticket>');
add_element ('TicketNumber', rec.ticketnumber);
add_element ('OrderType', rec.ordertype);
add_element ('Department', rec.department);
add_element ('Supplier', rec.supplier);
add_element ('Contract', rec.contract);
add_element ('ReportType', rec.reporttype);
add_element ('BuildingCode', rec.buildingcode);
add_element ('CostCenter', rec.costcenter);
add_element ('CostUnit', rec.costunit);
add_element ('Costs', rec.costs);
add_element ('SupplierReference', rec.supplierreference);
add_element ('Issued', rec.issued);
add_element ('Closed', rec.closed);
add_row ('</Ticket>');
-- Markeer als geexporteerd?
END;
END LOOP;
--add_row ('</Tickets>');
add_row ('</FacilitorImport>');
add_row ('</eExact>');
END;
/
COMMIT;
BEGIN adm.systrackscriptId('$Id$'); END;
/
SPOOL OFF