CONN#22808

svn path=/Customer/trunk/; revision=15266
This commit is contained in:
Maarten van der Heide
2012-04-27 15:08:10 +00:00
parent ec1aa68dc1
commit 8c0a1f5869
3 changed files with 301 additions and 13 deletions

41
CONN/Once/CONN#22808.sql Normal file
View File

@@ -0,0 +1,41 @@
-- Customer specific once-script CONN#22808.
--
-- (c) 2012 SG|facilitor bv
-- $Revision: 1 $
-- $Modtime: 27-04-12 17:08 $
--
-- Support: +31 53 4800700
SET ECHO ON
SPOOL xconn#22808.lst
SET DEFINE OFF
-- Zet technische gegevens van huidige set uitvoerenden op Basware:
-- prs_bedrijf_verwijder IS NULL -> niet de verwijderde, dus alleen bestaande relaties!
-- prs_bedrijf_uitvoerende = 1 -> alleen relaties die te kiezen zijn als Uitvoerende;
-- dit zijn in de Connexxion-inrichting alle bedrijven!
-- prs_bedrijf_xsl IS NOT NULL+prs_bedrijf_mldorder_adres IS NOT NULL -> alleen relaties
-- waarvoor nu ook al een XSL + URL staan geregistreerd (en naar wie vanuit FACILITOR
-- dus automatisch opdrachten worden verstuurd).
-- Deze 2 condities verwijderen routeert alle relaties naar Basware!
-- NOT EXISTS (...) -> geen gegevens aanpassen van relaties die (ook) als de leverancier
-- staan geregistreerd bij een catalogus-artikel (BES-module).
-- Deze conditie verwijderen overschrijft de stylesheet gebruikt voor de bestelbon!
/* Formatted on 27-4-2012 12:15:21 (QP5 v5.115.810.9015) */
UPDATE prs_bedrijf b
SET b.prs_bedrijf_xsl = 'xsl/conn2basw.xsl',
b.prs_bedrijf_mldorder_adres = 'FTP://<basware>'
WHERE b.prs_bedrijf_verwijder IS NULL
AND b.prs_bedrijf_uitvoerende = 1
AND b.prs_bedrijf_xsl IS NOT NULL
AND b.prs_bedrijf_mldorder_adres IS NOT NULL
AND NOT EXISTS (SELECT 1
FROM bes_srtdeel sd
WHERE sd.prs_bedrijf_key = b.prs_bedrijf_key);
BEGIN adm.systrackscript('$Workfile: CONN#22808.sql $', '$Revision: 1 $', 1); END;
/
COMMIT;
SPOOL OFF

View File

@@ -1,8 +1,8 @@
-- Customer specific once-script CONN52.
--
-- (c) 2012 SG|facilitor bv
-- $Revision: 2 $
-- $Modtime: 19-03-12 16:05 $
-- $Revision: 3 $
-- $Modtime: 27-04-12 15:40 $
--
-- Support: +31 53 4800700
SET ECHO ON
@@ -17,7 +17,102 @@ UPDATE ins_srtkenmerk sk
WHERE sk.ins_srtkenmerk_key IN (1461, 1462, 1463, 1464)
AND sk.ins_srtkenmerk_kenmerktype = 'N';
BEGIN adm.systrackscript('$Workfile: CONN52.sql $', '$Revision: 2 $', 1); END;
-- CONN#22808:
-- Aanmaken hidden kenmerk per opdrachttype tbv. Basware-koppeling (bij periodiek
-- afmelden op 1 gezet om te voorkomen dat dezelfde (afgemelde) opdracht nogmaals
-- wordt aangeleverd). In overleg besloten toch ALLEEN opdrachttype='Uitvoering'!
/* Formatted on 27-4-2012 15:20:25 (QP5 v5.115.810.9015) */
DECLARE
c_ordafm2basw_srtkey NUMBER (10) := 1111; -- Unused key in mld_srtkenmerk
BEGIN
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key,
mld_srtkenmerk_omschrijving,
mld_srtkenmerk_kenmerktype,
mld_srtkenmerk_lengte)
VALUES (c_ordafm2basw_srtkey,
'ORDAFM2BASW [tbv. Basware-koppeling]',
'N',
1);
--FOR rc IN ( SELECT opdrtype.*
-- FROM mld_typeopdr opdrtype
-- ORDER BY 1)
--LOOP
-- INSERT INTO mld_kenmerk (mld_srtkenmerk_key,
-- mld_kenmerk_niveau,
-- mld_kenmerk_volgnummer,
-- mld_typeopdr_key,
-- mld_kenmerk_hint)
-- VALUES (c_ordafm2basw_srtkey,
-- 'O',
-- -1,
-- rc.mld_typeopdr_key,
-- 'NIET WEG: Hidden kenmerk tbv. Basware-koppeling!');
-- COMMIT;
--END LOOP;
INSERT INTO mld_kenmerk (mld_srtkenmerk_key,
mld_kenmerk_niveau,
mld_kenmerk_volgnummer,
mld_typeopdr_key,
mld_kenmerk_hint)
VALUES (c_ordafm2basw_srtkey,
'O',
-1,
5, -- ALLEEN opdrachttype='Uitvoering'!
'NIET WEG: Hidden kenmerk tbv. Basware-koppeling!');
COMMIT;
END;
/
-- Vervolgens alle afgemelde Uitvoering-opdrachten tot NU eenmalig markeren, zodat
-- alleen Uitvoering-opdrachten per CONN52-upgrade worden aangeleverd aan Basware.
BEGIN
FOR rc
IN ( SELECT opdr.mld_opdr_key,
opdr.mld_kenmerk_key,
opdr.mld_key || '/' || opdr.volgnr opdrachtnr,
TO_CHAR (ordafdm.fac_tracking_datum, 'dd-mm-yyyy hh24:mi:ss')
afmelddatum
FROM (SELECT o.mld_opdr_key,
k.mld_kenmerk_key,
o.mld_melding_key mld_key,
o.mld_opdr_bedrijfopdr_volgnr volgnr
FROM mld_opdr o, mld_kenmerk k
WHERE o.mld_statusopdr_key = 6 -- Afgemeld
AND o.mld_typeopdr_key = 5 -- Uitvoering
AND o.mld_typeopdr_key = k.mld_typeopdr_key
AND k.mld_srtkenmerk_key = 1111
AND NOT EXISTS
(SELECT 1
FROM mld_kenmerkopdr ko,
mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key =
k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 1111))
opdr
LEFT JOIN
fac_tracking ordafdm
ON opdr.mld_opdr_key = ordafdm.fac_tracking_refkey
AND ordafdm.fac_srtnotificatie_key = 26 -- ORDAFM
ORDER BY 1, 2)
LOOP
INSERT INTO mld_kenmerkopdr (
mld_opdr_key,
mld_kenmerk_key,
mld_kenmerkopdr_waarde
)
VALUES (rc.mld_opdr_key, rc.mld_kenmerk_key, '1');
COMMIT;
END LOOP;
END;
/
BEGIN adm.systrackscript('$Workfile: CONN52.sql $', '$Revision: 3 $', 1); END;
/
SPOOL OFF

View File

@@ -1,7 +1,7 @@
-- Script containing customer specific configuration sql statements for CONN: Connexxion
-- (c) 2005-2010 SG|facilitor bv
-- $Revision: 182 $
-- $Modtime: 19-03-12 13:08 $
-- $Revision: 183 $
-- $Modtime: 27-04-12 17:05 $
--
-- Support: +31 53 4800710
@@ -444,8 +444,8 @@ BEGIN
ROLLBACK;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.imp_writelog ('EXPORT HUURMUTATIES',
p_MutatieKey || ' date:' || trunc(sysdate),
fac.writelog ('EXPORT HUURMUTATIES',
--p_MutatieKey || ' date:' || trunc(sysdate),
'E',
'(ORACLE error ' || to_char(oracle_err_num) || '/' || oracle_err_mes || ')',
v_actie
@@ -4423,7 +4423,7 @@ BEGIN
FROM DUAL;
fac.imp_writelog (p_import_key, 'S',
'Cxx factuurimport $Revision: 182 $', '');
'Cxx factuurimport $Revision: 183 $', '');
OPEN cfactuur;
IF cfactuur%ISOPEN THEN
@@ -7322,7 +7322,6 @@ AS
AND b.prs_kostenplaats_key = pk.prs_kostenplaats_key;
-- Eerste opzet
/* Formatted on 24-3-2010 15:12:46 (QP5 v5.136.908.31019) */
/* Formatted on 25-3-2010 9:46:31 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW conn_v_businessobjects
(
@@ -7545,7 +7544,7 @@ BEGIN
fac.safe_to_number(replace(v_afschrijving,'.','')),
fac.safe_to_number(replace(v_servicekosten,'.','')),
fac.safe_to_number(replace(v_eindtotaal,'.','')),
p_applrun
TO_CHAR(p_import_key)
);
v_vorige_locatie := v_locatie;
v_vorige_divisie := v_divisie;
@@ -7668,7 +7667,7 @@ BEGIN
v_divisie,
v_kostensoort,
fac.safe_to_number(replace(v_bedrag,',','.')),
p_applrun
TO_CHAR(p_import_key)
);
end if;
@@ -11700,10 +11699,163 @@ EXCEPTION
END conn_update_keurobjecten;
/
BEGIN fac.registercustversion('CONN', 51); END;
-- BASW-export; eporteer de afgemelde opdrachten (sinds de laatste keer) en
-- markeer deze vervolgens als 'ORDAFM-doorgezet' (= hidden kenmerk)!
/* Formatted on 26-4-2012 11:32:24 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW conn_v_export_ordafm_xml (RESULT, result_order)
AS
SELECT fac_rapport_regel, fac_rapport_volgnr
FROM fac_rapport
WHERE fac_rapport_node = SUBSTR ('ORDAFM_XML', 1, 12);
/* Formatted on 27-4-2012 15:12:24 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE conn_select_ordafm_xml (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Cursor loopt over een tijdelijke tabel met daarin opgebouwd alle gegevens
-- van de te exporteren afgemelde Uitvoering-opdrachten (opdrachttype = 5).
CURSOR c1
IS
SELECT opdr.mld_opdr_key,
opdr.mld_kenmerk_key,
opdr.mld_key || '/' || opdr.volgnr opdrachtnr,
TO_CHAR (ordafdm.fac_tracking_datum, 'dd-mm-yyyy hh24:mi:ss')
afmelddatum
FROM (SELECT o.mld_opdr_key,
k.mld_kenmerk_key,
o.mld_melding_key mld_key,
o.mld_opdr_bedrijfopdr_volgnr volgnr
FROM mld_opdr o, mld_kenmerk k
WHERE o.mld_statusopdr_key = 6 -- Afgemeld
AND o.mld_typeopdr_key = 5 -- Uitvoering
AND o.mld_typeopdr_key = k.mld_typeopdr_key
AND k.mld_srtkenmerk_key = 1111
AND NOT EXISTS
(SELECT 1
FROM mld_kenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key =
k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 1111))
opdr
LEFT JOIN
fac_tracking ordafdm
ON opdr.mld_opdr_key = ordafdm.fac_tracking_refkey
AND ordafdm.fac_srtnotificatie_key = 26
ORDER BY 1, 2;
c_ordafm2bw_srtkenmerk_key NUMBER (10) := 1111; -- Aangemaakt met CONN52!
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_rownr NUMBER;
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_rownr, p_regel);
v_rownr := v_rownr + 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_rownr := 0;
DELETE fac_rapport
WHERE fac_rapport_node = SUBSTR (p_applname, 1, 12);
COMMIT;
SELECT COUNT ( * )
INTO v_count
FROM mld_opdr o
WHERE mld_statusopdr_key = 6 -- Afgemeld
AND o.mld_typeopdr_key = 5 -- Uitvoering
AND NOT EXISTS
(SELECT 1
FROM mld_kenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key =
c_ordafm2bw_srtkenmerk_key);
IF (v_count > 0)
THEN
-- header
add_row (
'<?xml version="1.0" encoding="windows-1252" standalone="yes"?>'
);
add_row ('<basware>');
add_row ('<opdrachtlijst>');
FOR rec IN c1
LOOP
BEGIN
add_row( '<opdracht key='
|| CHR (34)
|| rec.opdrachtnr
|| CHR (34)
|| '>');
add_element ('afmelddatum', rec.afmelddatum);
add_row ('</opdracht>');
-- Markeer opdracht als 'ORDAFM-doorgezet'!
INSERT INTO mld_kenmerkopdr (
mld_opdr_key,
mld_kenmerk_key,
mld_kenmerkopdr_waarde
)
VALUES (rec.mld_opdr_key, rec.mld_kenmerk_key, '1');
COMMIT;
END;
END LOOP;
add_row ('</opdrachtlijst>');
add_row ('</basware>');
END IF;
fac.writelog (p_applname,
'S',
'Aantal opdrachten afgemeld: ' || TO_CHAR (v_count),
'');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'ORDAFM_XML-export afgebroken!',
v_errormsg);
COMMIT;
END;
/
BEGIN adm.systrackscript('$Workfile: conn.sql $', '$Revision: 182 $', 0); END;
BEGIN fac.registercustversion('CONN', 52); END;
/
BEGIN adm.systrackscript('$Workfile: conn.sql $', '$Revision: 183 $', 0); END;
/
COMMIT;