NYBU#65991: Export vermaat eenmalig voor 5 weken
svn path=/Customer/trunk/; revision=50542
This commit is contained in:
365
NYBU/nybu.sql
365
NYBU/nybu.sql
@@ -11617,6 +11617,371 @@ EXCEPTION
|
||||
END nybu_select_res_cat;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE nybu_select_res_cat_5w (p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2)
|
||||
AS
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
|
||||
CURSOR c (c_tot DATE)
|
||||
IS
|
||||
SELECT klant,
|
||||
res_rsv_ruimte_van,
|
||||
periode,
|
||||
grootboek,
|
||||
kostenplaats_key,
|
||||
kostenplaats,
|
||||
deb_nr,
|
||||
proj_key,
|
||||
proj,
|
||||
btw,
|
||||
prs_kostensoort_btw,
|
||||
res_key,
|
||||
res_volgnr,
|
||||
referentie,
|
||||
res_rsv_ruimte_key,
|
||||
descr,
|
||||
aantal,
|
||||
omschrijving,
|
||||
soort,
|
||||
btw_code,
|
||||
SUM (prijs_ex) prijs_ex,
|
||||
SUM (prijs_inc) prijs_inc,
|
||||
SUM (btw_laag) btw_laag,
|
||||
SUM (btw_hoog) btw_hoog,
|
||||
SUM (korting) korting,
|
||||
SUM (inex) inex
|
||||
FROM (SELECT k.prs_kostenplaats_omschrijving klant,
|
||||
rr.res_rsv_ruimte_van,
|
||||
TO_CHAR (rr.res_rsv_ruimte_van, 'YYYYMM') periode,
|
||||
ks.prs_kostensoort_oms grootboek,
|
||||
kg.prs_kostenplaatsgrp_key kostenplaats_key,
|
||||
TRIM (SUBSTR (kg.prs_kostenplaatsgrp_oms, 1, 7))
|
||||
kostenplaats,
|
||||
k.prs_kostenplaats_nr deb_nr,
|
||||
k.prs_kostenplaats_key proj_key,
|
||||
k.prs_kostenplaats_nr proj,
|
||||
CASE
|
||||
WHEN btw.perc > 9
|
||||
THEN
|
||||
btw.perc
|
||||
WHEN (btw.perc = 6 OR btw.perc = 9)
|
||||
THEN
|
||||
CASE
|
||||
WHEN rra.res_rsv_artikel_levering <
|
||||
TO_DATE ('1-1-2019', 'dd-mm-yyyy')
|
||||
THEN
|
||||
6
|
||||
ELSE
|
||||
9
|
||||
END
|
||||
ELSE
|
||||
0
|
||||
END
|
||||
btw,
|
||||
ks.prs_kostensoort_btw,
|
||||
CASE
|
||||
WHEN btw.perc > 9
|
||||
THEN
|
||||
btw.btw_code
|
||||
WHEN (btw.perc = 6 OR btw.perc = 9)
|
||||
THEN
|
||||
CASE
|
||||
WHEN rra.res_rsv_artikel_levering <
|
||||
TO_DATE ('1-1-2019', 'dd-mm-yyyy')
|
||||
THEN
|
||||
'VL'
|
||||
ELSE
|
||||
btw.btw_code
|
||||
END
|
||||
ELSE
|
||||
btw.btw_code
|
||||
END
|
||||
btw_code,
|
||||
rr.res_reservering_key res_key,
|
||||
rr.res_rsv_ruimte_volgnr res_volgnr,
|
||||
NULL referentie,
|
||||
rr.res_reservering_key
|
||||
|| '/'
|
||||
|| rr.res_rsv_ruimte_volgnr
|
||||
reservering,
|
||||
rr.res_rsv_ruimte_key,
|
||||
rr.res_rsv_ruimte_omschrijving descr,
|
||||
1 aantal,
|
||||
NVL (
|
||||
(SELECT r.res_ruimte_nr
|
||||
FROM res_ruimte_opstelling ro, res_ruimte r
|
||||
WHERE ro.res_ruimte_opstel_key =
|
||||
rr.res_ruimte_opstel_key
|
||||
AND r.res_ruimte_key = ro.res_ruimte_key), ---- NVL ipv coalesce aangepast nav Oracle bug #55835
|
||||
(SELECT 'Kamer '
|
||||
|| alg_ruimte_nr
|
||||
|| ' ('
|
||||
|| alg_ruimte_omschrijving
|
||||
|| ')'
|
||||
FROM alg_v_ruimte_gegevens rg
|
||||
WHERE rg.alg_ruimte_key = rr.alg_ruimte_key))
|
||||
omschrijving,
|
||||
'catering' soort,
|
||||
(rra.res_rsv_artikel_prijs
|
||||
/ ( (CASE
|
||||
WHEN btw.perc > 9
|
||||
THEN
|
||||
btw.perc
|
||||
WHEN (btw.perc = 6 OR btw.perc = 9)
|
||||
THEN
|
||||
CASE
|
||||
WHEN rra.res_rsv_artikel_levering <
|
||||
TO_DATE ('1-1-2019',
|
||||
'dd-mm-yyyy')
|
||||
THEN
|
||||
6
|
||||
ELSE
|
||||
9
|
||||
END
|
||||
ELSE
|
||||
0
|
||||
END)
|
||||
+ 100))
|
||||
* 100
|
||||
prijs_ex,
|
||||
rra.res_rsv_artikel_prijs prijs_inc,
|
||||
DECODE (
|
||||
btw.perc,
|
||||
9,
|
||||
rra.res_rsv_artikel_prijs
|
||||
* (CASE
|
||||
WHEN rra.res_rsv_artikel_levering <
|
||||
TO_DATE ('1-1-2019', 'dd-mm-yyyy')
|
||||
THEN
|
||||
6
|
||||
ELSE
|
||||
9
|
||||
END)
|
||||
/ (100
|
||||
+ (CASE
|
||||
WHEN rra.res_rsv_artikel_levering <
|
||||
TO_DATE ('1-1-2019', 'dd-mm-yyyy')
|
||||
THEN
|
||||
6
|
||||
ELSE
|
||||
9
|
||||
END)),
|
||||
0)
|
||||
btw_laag,
|
||||
DECODE (
|
||||
btw.perc,
|
||||
21,
|
||||
rra.res_rsv_artikel_prijs
|
||||
* btw.perc
|
||||
/ (100 + btw.perc),
|
||||
0)
|
||||
btw_hoog,
|
||||
0 korting,
|
||||
0 inex
|
||||
FROM res_rsv_ruimte rr,
|
||||
prs_kostenplaats k,
|
||||
prs_kostenplaatsgrp kg,
|
||||
res_rsv_artikel rra,
|
||||
res_artikel ra,
|
||||
res_discipline di,
|
||||
prs_kostensoort ks,
|
||||
(SELECT fac.safe_to_number (fac_usrdata_upper) perc,
|
||||
fac_usrdata_omschr btw_code
|
||||
FROM fac_usrdata
|
||||
WHERE fac_usrtab_key = 42
|
||||
AND fac_usrdata_verwijder IS NULL) btw
|
||||
WHERE COALESCE (k.prs_kostenplaats_extern, 0) = 0
|
||||
AND kg.prs_kostenplaatsgrp_key =
|
||||
k.prs_kostenplaatsgrp_key
|
||||
AND rr.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||||
AND rr.res_rsv_ruimte_dirtlevel = 0
|
||||
AND rr.res_rsv_ruimte_afgerond = 1
|
||||
AND rr.res_rsv_ruimte_verwijder IS NULL
|
||||
AND rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
|
||||
AND rra.res_artikel_key = ra.res_artikel_key
|
||||
AND ra.res_discipline_key = di.ins_discipline_key
|
||||
AND ks.prs_kostensoort_key = di.prs_kostensoort_key
|
||||
AND di.ins_discipline_key NOT IN (462, 581, 741) -- hotelkamers, inhuur voorzieningen, linnen
|
||||
AND ra.res_artikel_btw = btw.perc
|
||||
AND rra.res_rsv_artikel_prijs <> 0
|
||||
AND rra.res_rsv_artikel_levering < c_tot
|
||||
AND NOT EXISTS -- flag reservering bevat catering op externe kostenplaats is niet gezet.
|
||||
(SELECT res_kenmerkwaarde_key
|
||||
FROM res_kenmerkwaarde kw, res_kenmerk k
|
||||
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
|
||||
AND k.res_srtkenmerk_key = 321 -- Reservering bevat catering op externe kostenpaats.
|
||||
AND kw.res_rsv_ruimte_key =
|
||||
rr.res_rsv_ruimte_key
|
||||
AND fac.safe_to_number (
|
||||
kw.res_kenmerkreservering_waarde) =
|
||||
1)
|
||||
AND NOT EXISTS -- entry komt nog niet voor in de verkoopfactuurtabel
|
||||
(SELECT fin_verkoopfactuur_key
|
||||
FROM fin_verkoopfactuur vf
|
||||
WHERE vf.fin_verkoopfactuur_xmlnode =
|
||||
'reservering'
|
||||
AND vf.fin_verkoopfactuur_refkey =
|
||||
rr.res_rsv_ruimte_key
|
||||
AND COALESCE (vf.fin_verkoopfactuur_c4,
|
||||
'NOP') = 'catering'))
|
||||
GROUP BY klant,
|
||||
res_rsv_ruimte_van,
|
||||
periode,
|
||||
grootboek,
|
||||
kostenplaats_key,
|
||||
kostenplaats,
|
||||
deb_nr,
|
||||
proj_key,
|
||||
proj,
|
||||
btw,
|
||||
prs_kostensoort_btw,
|
||||
res_key,
|
||||
res_volgnr,
|
||||
referentie,
|
||||
res_rsv_ruimte_key,
|
||||
descr,
|
||||
aantal,
|
||||
omschrijving,
|
||||
soort,
|
||||
btw_code
|
||||
ORDER BY res_rsv_ruimte_key, btw_code;
|
||||
|
||||
v_teller NUMBER;
|
||||
v_rap_count NUMBER;
|
||||
v_kenmerk_key_laatste NUMBER;
|
||||
v_ruimte_key_prev NUMBER;
|
||||
v_verkoopfactuurkop_key NUMBER;
|
||||
v_tot DATE;
|
||||
v_van DATE;
|
||||
BEGIN
|
||||
v_teller := 0;
|
||||
v_rap_count := 0;
|
||||
|
||||
v_aanduiding := 'Init';
|
||||
v_errormsg := 'Periode bepalen';
|
||||
|
||||
SELECT TRUNC (MAX (fin_verkoopfactuur_d2))
|
||||
INTO v_van
|
||||
FROM fin_verkoopfactuur
|
||||
WHERE fin_verkoopfactuur_datum IS NOT NULL
|
||||
AND fin_verkoopfactuur_c4 = 'catering';
|
||||
|
||||
-- We rekenen hier met periodes van 5 weken.
|
||||
v_tot := v_van + 35;
|
||||
|
||||
DELETE imp_log
|
||||
WHERE imp_log_applicatie = p_applname;
|
||||
|
||||
-- verwijder regels die nog niet verwerkt zijn
|
||||
DELETE fin_verkoopfactuurkop
|
||||
WHERE fin_verkoopfactuurkop_key IN
|
||||
(SELECT fin_verkoopfactuurkop_key
|
||||
FROM fin_verkoopfactuur
|
||||
WHERE fin_verkoopfactuur_datum IS NULL
|
||||
AND fin_verkoopfactuur_c4 = 'catering');
|
||||
|
||||
DELETE fin_verkoopfactuur
|
||||
WHERE fin_verkoopfactuur_datum IS NULL
|
||||
AND fin_verkoopfactuur_c4 = 'catering';
|
||||
|
||||
v_ruimte_key_prev := -1;
|
||||
|
||||
FOR rec IN c (v_tot)
|
||||
LOOP
|
||||
IF rec.res_rsv_ruimte_key <> v_ruimte_key_prev
|
||||
THEN
|
||||
v_ruimte_key_prev := rec.res_rsv_ruimte_key;
|
||||
|
||||
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
|
||||
VALUES (rec.res_key || '/' || rec.res_volgnr || '-c')
|
||||
RETURNING fin_verkoopfactuurkop_key
|
||||
INTO v_verkoopfactuurkop_key;
|
||||
END IF;
|
||||
|
||||
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
|
||||
fin_verkoopfactuur_id,
|
||||
fin_verkoopfactuur_datum,
|
||||
fin_verkoopfactuur_omschr,
|
||||
fin_verkoopfactuur_xmlnode,
|
||||
fin_verkoopfactuur_refkey,
|
||||
prs_kostenplaats_nr,
|
||||
prs_kostenplaats_omschrijving,
|
||||
prs_kostenplaatsgrp_oms,
|
||||
prs_kostensoort_oms,
|
||||
prs_debiteur_naam,
|
||||
fin_verkoopfactuur_bedrag,
|
||||
fin_verkoopfactuur_btw,
|
||||
fin_btwtabelwaarde_code,
|
||||
fin_btwtabelwaarde_oms,
|
||||
fin_btwtabelwaarde_perc,
|
||||
fin_verkoopfactuur_maand,
|
||||
fin_verkoopfactuur_n1,
|
||||
fin_verkoopfactuur_n2,
|
||||
fin_verkoopfactuur_c1,
|
||||
fin_verkoopfactuur_c2,
|
||||
fin_verkoopfactuur_c3,
|
||||
fin_verkoopfactuur_c4,
|
||||
fin_verkoopfactuur_d1,
|
||||
fin_verkoopfactuur_d2)
|
||||
VALUES (v_verkoopfactuurkop_key,
|
||||
TO_CHAR (SYSDATE, 'YYYY-MM-DD'),
|
||||
NULL,
|
||||
rec.omschrijving,
|
||||
'reservering',
|
||||
rec.res_rsv_ruimte_key,
|
||||
rec.proj,
|
||||
rec.proj,
|
||||
rec.kostenplaats,
|
||||
rec.grootboek,
|
||||
rec.deb_nr,
|
||||
rec.prijs_ex,
|
||||
rec.btw_hoog + rec.btw_laag,
|
||||
rec.btw_code,
|
||||
rec.btw_code,
|
||||
rec.btw,
|
||||
rec.periode,
|
||||
rec.inex,
|
||||
0, -- debet
|
||||
rec.res_key || '/' || rec.res_volgnr,
|
||||
rec.klant,
|
||||
rec.referentie,
|
||||
'catering',
|
||||
rec.res_rsv_ruimte_van,
|
||||
v_tot);
|
||||
END LOOP;
|
||||
|
||||
|
||||
fac.writelog (p_applname,
|
||||
'S',
|
||||
'Factuurregels gegenereerd',
|
||||
'');
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg :=
|
||||
v_errorhint
|
||||
|| ' ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.writelog (p_applname,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Onbekende fout!');
|
||||
COMMIT;
|
||||
END nybu_select_res_cat_5w;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE VIEW nybu_v_exp_res_cat
|
||||
(
|
||||
reservering,
|
||||
|
||||
Reference in New Issue
Block a user