CONN#13992

svn path=/Customer/trunk/; revision=13587
This commit is contained in:
Maykel Geerdink
2008-04-14 07:51:26 +00:00
parent 8610b75291
commit a91b95e518

View File

@@ -1,7 +1,7 @@
-- Script containing customer specific configuration sql statements for CONN: Connexxion
-- (c) 2005-2006 Dijkoraad IT bv
-- $Revision: 123 $
-- $Modtime: 25-03-08 16:57 $
-- $Revision: 124 $
-- $Modtime: 14-04-08 9:48 $
--
-- Support: +31 53 4800700
@@ -4747,10 +4747,12 @@ AS
c_ordernr_index NUMBER;
c_ordernr_s1 VARCHAR2 (20);
c_ordernr_s2 VARCHAR2 (20);
c_ordernr_t VARCHAR2 (40);
c_old_ordernr VARCHAR2 (20);
c_write_ordernr VARCHAR2 (20);
c_bestelopdr_ordernr VARCHAR2 (20);
c_bestelopdr_id VARCHAR2 (20);
c_totaal NUMBER;
c_fact_totaal NUMBER;
c_find BOOLEAN;
c_find_ordernr BOOLEAN;
c_mld_opdr_key NUMBER (10);
@@ -4826,6 +4828,9 @@ BEGIN
c_factuurregel := 1;
c_ordernr_index := INSTR (rc.ordernr, '/');
c_totaal := 0;
c_mld_opdr_key := NULL;
c_cnt_contract_key := NULL;
c_bes_bestelopdr_key := NULL;
IF c_ordernr_index = 0
THEN
@@ -4854,7 +4859,6 @@ BEGIN
)
AND ASCII (SUBSTR (c_prefix, 1, 1)) != 67
AND ASCII (SUBSTR (c_prefix, 1, 1)) != 99
)
)
THEN
c_fac_type := 'O'; -- Opdracht (Melding)
@@ -4862,7 +4866,6 @@ BEGIN
AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 57
)
THEN
c_ordernr_s1 = rc.ordernr;
c_fac_type := 'B'; -- Bestelling
ELSIF ( ASCII (SUBSTR (c_prefix, 1, 1)) = 67
OR ASCII (SUBSTR (c_prefix, 1, 1)) = 99
@@ -4882,7 +4885,7 @@ BEGIN
-- Probeer opdrachtnummer te achterhalen bij bestelopdrachten
-- met hetzelfde leveranciersnummer, locatie, afleverdatum en aantal
SELECT bo.bes_bestelopdr_id
INTO c_bestelopdr_ordernr
INTO c_bestelopdr_id
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bbi,
@@ -4926,7 +4929,17 @@ BEGIN
END;
IF c_find_ordernr
THEN
c_ordernr_s1 := '' || c_bestelopdr_ordernr;
c_ordernr_index := INSTR (c_bestelopdr_id, '/');
c_totaal := 0;
IF c_ordernr_index = 0
THEN
c_ordernr_s1 := c_bestelopdr_id;
c_ordernr_s2 := '';
ELSE
c_ordernr_s1 := SUBSTR (c_bestelopdr_id, 1, c_ordernr_index - 1);
c_ordernr_s2 := SUBSTR (c_bestelopdr_id, c_ordernr_index + 1);
END IF;
c_fac_type := 'B';
END IF;
END IF;
@@ -4987,7 +5000,7 @@ BEGIN
-- c_ordernr_s2 bevat volgnummer van de opdracht bij meldingen
-- Bij bestellingen en contracten is deze waarde leeg
-- Find mld_opdr_key met mld_melding_key
-- Vind mld_opdr_key met mld_melding_key
IF c_fac_type = 'O'
THEN
c_cnt_contract_key := NULL;
@@ -5016,24 +5029,42 @@ BEGIN
END;
ELSIF c_fac_type = 'C'
THEN
c_cnt_contract_key := c_ordernr_s1;
-- bestaat het contract wel?
BEGIN
SELECT cnt_contract_key
INTO c_cnt_contract_key
FROM cnt_contract
WHERE cnt_contract_key = c_ordernr_s1;
EXCEPTION
WHEN OTHERS THEN
c_cnt_contract_key := NULL;
c_find := FALSE;
END;
c_bes_bestelopdr_key := NULL;
c_mld_opdr_key := NULL;
ELSIF c_fac_type = 'B'
THEN
c_cnt_contract_key := NULL;
-- vind de bestelopdracht key?
BEGIN
IF c_ordernr_s2 IS NULL
THEN
c_ordernr_t := c_ordernr_s1;
ELSE
c_ordernr_t := c_ordernr_s1 || '/' || c_ordernr_s2;
END IF;
SELECT bes_bestelopdr_key
INTO c_bes_bestelopdr_key
FROM bes_bestelopdr
WHERE bes_bestelopdr_id = c_ordernr_s1;
WHERE bes_bestelopdr_id = c_ordernr_t;
EXCEPTION
WHEN OTHERS THEN
c_bes_bestelopdr_key := NULL;
c_find := FALSE;
END;
c_mld_opdr_key := NULL;
END IF;
@@ -5119,7 +5150,7 @@ BEGIN
COMMIT;
IF c_find_ordernr
THEN
c_write_ordernr := c_bestelopdr_ordernr;
c_write_ordernr := c_bestelopdr_id;
ELSE
c_write_ordernr := rc.ordernr;
END IF;
@@ -5153,6 +5184,7 @@ BEGIN
END LOOP;
-- Facturen
-- Welke bestelling kan afgemeld worden. (Alleen bestellingen kunnen automatisch afgemeld worden)
FOR rc IN cfactuur
LOOP
c_fac_type := '';
@@ -5175,13 +5207,13 @@ BEGIN
)
)
THEN
c_fac_type := 'O'; -- Opdracht (Melding)
c_fac_type := 'O'; -- Opdracht (Melidng)
ELSIF ( ASCII (SUBSTR (c_prefix, 1, 1)) >= 48
AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 57
)
THEN
c_fac_type := 'B'; -- Bestelling
c_bestelopdr_ordernr := rc.ordernr;
c_bestelopdr_id := rc.ordernr;
ELSIF ( ASCII (SUBSTR (c_prefix, 1, 1)) = 67
OR ASCII (SUBSTR (c_prefix, 1, 1)) = 99
)
@@ -5200,7 +5232,7 @@ BEGIN
-- Probeer opdrachtnummer te achterhalen bij bestelopdrachten
-- met hetzelfde leveranciersnummer, locatie, afleverdatum en aantal
SELECT bo.bes_bestelopdr_id
INTO c_bestelopdr_ordernr
INTO c_bestelopdr_id
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bbi,
@@ -5256,15 +5288,24 @@ BEGIN
INTO c_totaal
FROM bes_bestelopdr b, bes_bestelopdr_item boi
WHERE boi.bes_bestelopdr_key = b.bes_bestelopdr_key
AND b.bes_bestelopdr_id = c_besteloprd_ordernr;
AND b.bes_bestelopdr_id = c_bestelopdr_id;
SELECT MAX (fin_factuur_key)
INTO c_index
FROM fin_factuur f, bes_bestelopdr bo
WHERE bo.bes_bestelopdr_key = f.bes_bestelopdr_key
AND bo.bes_bestelopdr_id = c_besteloprd_ordernr;
AND bo.bes_bestelopdr_id = c_bestelopdr_id;
IF c_totaal = rc.totaal
SELECT SUM(fr.fin_factuurregel_totaal)
INTO c_fact_totaal
FROM fin_factuur f,
fin_factuurregel fr,
bes_bestelopdr b
WHERE f.bes_bestelopdr_key = b.bes_bestelopdr_key
AND f.fin_factuur_key = fr.fin_factuur_key
AND b.bes_bestelopdr_id = c_bestelopdr_id;
IF c_totaal = c_fact_totaal --c_totaal = rc.totaal
THEN
UPDATE fin_factuur
SET fin_factuur_datumfiat_ok = SYSDATE,
@@ -5282,7 +5323,7 @@ BEGIN
'Factuur '
|| c_index
|| ' status op afgemeld gezet ',
c_bestelopdr_ordernr || ' / ' || rc.factuurnr
c_bestelopdr_id || ' / ' || rc.factuurnr
);
END IF;
END IF;