BSSC#55692 Facturatieproces (huur per 01-01-2023)

svn path=/Customer/trunk/; revision=58227
This commit is contained in:
Maarten van der Heide
2022-12-04 22:10:22 +00:00
parent 208252e7a9
commit 343c550c62

View File

@@ -701,7 +701,7 @@ AS
-- V Kenmerk 641=Onbelaste huurder???
CREATE OR REPLACE VIEW bssc_v_fact_actual
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '202301') maand -- TODO
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '202301') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id, -- Huur!
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
@@ -1551,355 +1551,7 @@ AS
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
ORDER BY vf.prs_bedrijf_key, 1, 2, 3, 4, SUBSTR (vf.fin_verkoopfactuur_c6, 1, 1), SUBSTR (vf.fin_verkoopfactuur_c6, INSTR (vf.fin_verkoopfactuur_c6, '=') + 1);
/*
CREATE OR REPLACE VIEW bssc_v_rap_export_fact_chv
(
hide_f_sortering,
fclt_x_maand,
code,
valuta,
factuurdatum,
periode,
factuurnummer,
vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode
)
AS
SELECT ROWNUM,
REPLACE (periode, '/', '-') periode,
code,
valuta,
--factuurdatum,
REPLACE (factuurdatum, '-', '/') factuurdatum,
periode,
factuurnummer,
--vervaldatum,
REPLACE (vervaldatum, '-', '/') vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode
FROM ( SELECT v.fin_verkoopfactuur_id || '0000' sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
'1300' grtboekrek, -- TODO:Hard op '1300'
v.debiteur_nr rel_kpl,
NULL prj_activa, -- Hard op NULL
SUM (v.mndnet + v.mndbtw) bedrag, -- Totaalbedrag incl. BTW gegroepeerd over andere kolommen!
'debit' debitcredit,
'Total' omschrijving, -- Hard op 'Total'
NULL btwcode -- Hard op NULL
FROM bssc_v_fact_frozen v
WHERE v.po_nr = 'CHV'
AND v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY v.fin_verkoopfactuur_id || '0000',
'VRK',
'EUR',
v.factuurdatum,
SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
'1300',
v.debiteur_nr,
NULL,
'debit',
'Total',
NULL
UNION ALL
SELECT v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???') sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
v.grtboekrek,
kp.prs_kostenplaats_nr rel_kpl,
NULL prj_activa, -- Hard op NULL
SUM (v.mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
'credit' debitcredit, -- TODO:Altijd 'credit' (ook negatieve bedragen)???
v.regel omschrijving,
DECODE (fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', 'V', 'VBINEU_VERL', 'VN') btwcode
FROM bssc_v_fact_frozen v, cnt_contract c, prs_kostenplaats kp
WHERE v.po_nr = 'CHV'
AND v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
AND v.refkey = c.cnt_contract_key
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
GROUP BY v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???'),
'VRK',
'EUR',
v.factuurdatum,
SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
v.grtboekrek,
kp.prs_kostenplaats_nr,
NULL,
'credit',
v.regel,
DECODE (fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', 'V', 'VBINEU_VERL', 'VN')
ORDER BY 1);
CREATE OR REPLACE VIEW bssc_v_export_fact_chv
(
result,
result_order
)
AS -- View bevat alleen inhoud op de dag na de 1e werkdag van de maand!
SELECT 'code'
|| ';valuta'
|| ';factuurdatum'
|| ';periode'
|| ';factuurnummer'
|| ';vervaldatum'
|| ';nummer'
|| ';grtboekrek'
|| ';rel/kpl'
|| ';prj/activa'
|| ';bedrag'
|| ';debitcredit'
|| ';omschrijving'
|| ';btwcode',
0
FROM DUAL
WHERE FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 14 -- TODO:Nacht na 1e werkdag!
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
AND NOT EXISTS
(SELECT 1
FROM mld_vrije_dagen
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1))
UNION ALL
SELECT code
|| ';'
|| valuta
|| ';'
|| factuurdatum
|| ';'
|| periode
|| ';'
|| factuurnummer
|| ';'
|| vervaldatum
|| ';'
|| nummer
|| ';'
|| grtboekrek
|| ';'
|| rel_kpl
|| ';'
|| prj_activa
|| ';'
|| bedrag
|| ';'
|| debitcredit
|| ';'
|| omschrijving
|| ';'
|| btwcode,
ROWNUM
FROM bssc_v_rap_export_fact_chv
WHERE fclt_x_maand = TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyy-mm')
AND FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 14 -- TODO:Nacht na 1e werkdag!
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
AND NOT EXISTS
(SELECT 1
FROM mld_vrije_dagen
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1))
ORDER BY 2;
CREATE OR REPLACE VIEW bssc_v_rap_export_fact_cmd
(
hide_f_sortering,
fclt_x_maand,
code,
valuta,
factuurdatum,
periode,
factuurnummer,
vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode
)
AS
SELECT ROWNUM,
REPLACE (periode, '/', '-') periode,
code,
valuta,
--factuurdatum,
REPLACE (factuurdatum, '-', '/') factuurdatum,
periode,
factuurnummer,
--vervaldatum,
REPLACE (vervaldatum, '-', '/') vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode
FROM ( SELECT v.fin_verkoopfactuur_id || '0000' sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
'1300' grtboekrek, -- TODO:Hard op '1300'
v.debiteur_nr rel_kpl,
NULL prj_activa, -- Hard op NULL
SUM (v.mndnet + v.mndbtw) bedrag, -- Totaalbedrag incl. BTW gegroepeerd over andere kolommen!
'debit' debitcredit,
'Total' omschrijving, -- Hard op 'Total'
NULL btwcode -- Hard op NULL
FROM bssc_v_fact_frozen v
WHERE v.po_nr = 'CMD'
AND v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY v.fin_verkoopfactuur_id || '0000',
'VRK',
'EUR',
v.factuurdatum,
SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
'1300',
v.debiteur_nr,
NULL,
'debit',
'Total',
NULL
UNION ALL
SELECT v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???') sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
v.grtboekrek,
kp.prs_kostenplaats_nr rel_kpl,
NULL prj_activa, -- Hard op NULL
SUM (v.mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
'credit' debitcredit, -- TODO:Altijd 'credit' (ook negatieve bedragen)???
v.regel omschrijving,
DECODE (fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', 'V', 'VBINEU_VERL', 'VN') btwcode
FROM bssc_v_fact_frozen v, cnt_contract c, prs_kostenplaats kp
WHERE v.po_nr = 'CMD'
AND v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
AND v.refkey = c.cnt_contract_key
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
GROUP BY v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???'),
'VRK',
'EUR',
v.factuurdatum,
SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
v.grtboekrek,
kp.prs_kostenplaats_nr,
NULL,
'credit',
v.regel,
DECODE (fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', 'V', 'VBINEU_VERL', 'VN')
ORDER BY 1);
CREATE OR REPLACE VIEW bssc_v_export_fact_cmd
(
result,
result_order
)
AS -- View bevat alleen inhoud op de dag na de 1e werkdag van de maand!
SELECT 'code'
|| ';valuta'
|| ';factuurdatum'
|| ';periode'
|| ';factuurnummer'
|| ';vervaldatum'
|| ';nummer'
|| ';grtboekrek'
|| ';rel/kpl'
|| ';prj/activa'
|| ';bedrag'
|| ';debitcredit'
|| ';omschrijving'
|| ';btwcode',
0
FROM DUAL
WHERE FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 14 -- TODO:Nacht na 1e werkdag!
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
AND NOT EXISTS
(SELECT 1
FROM mld_vrije_dagen
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1))
UNION ALL
SELECT code
|| ';'
|| valuta
|| ';'
|| factuurdatum
|| ';'
|| periode
|| ';'
|| factuurnummer
|| ';'
|| vervaldatum
|| ';'
|| nummer
|| ';'
|| grtboekrek
|| ';'
|| rel_kpl
|| ';'
|| prj_activa
|| ';'
|| bedrag
|| ';'
|| debitcredit
|| ';'
|| omschrijving
|| ';'
|| btwcode,
ROWNUM
FROM bssc_v_rap_export_fact_cmd
WHERE fclt_x_maand = TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyy-mm')
AND FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 14 -- TODO:Nacht na 1e werkdag!
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
AND NOT EXISTS
(SELECT 1
FROM mld_vrije_dagen
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1))
ORDER BY 2;
*/
CREATE OR REPLACE PROCEDURE bssc_select_fact (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
@@ -1909,7 +1561,7 @@ AS
SELECT '[' || v.refid || '|' || v.prs_debiteur_naam || '|' || v.regel || '] ' aanduiding,
v.*
FROM bssc_v_fact_actual v
WHERE SUBSTR (v.regel, 1, 3) = 'CHV'
WHERE SUBSTR (v.regel, 1, 3) = 'CHV' -- TODO:Per februari ook CMD en dan deze regel weg!
ORDER BY v.prs_bedrijf_key, v.po_nr, v.sortering, v.regel, v.alg_plaatsaanduiding;
-- Verstuur verkoopfactuur naar huurder.
@@ -1923,8 +1575,7 @@ AS
WHERE vf.fin_verkoopfactuur_xmlnode = 'contract' AND fin_verkoopfactuur_n1 IS NULL -- Onderscheid ADDD vs. FACT!
AND vf.fin_verkoopfactuurkop_key = vfk.fin_verkoopfactuurkop_key
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
--AND TRUNC (vf.fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE)
AND TRUNC (vf.fin_verkoopfactuur_aanmaak) = fac.safe_to_date ('04-11-2022', 'dd-mm-yyyy')
AND TRUNC (vf.fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE)
ORDER BY vf.fin_verkoopfactuur_id;
v_errormsg VARCHAR2 (1000);
@@ -1948,22 +1599,22 @@ BEGIN
FROM mld_vrije_dagen
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1);
-- LET OP: Twinfield-export van verhuurcontracten (= boekingsgangen) draait
-- LET OP: FACT-export van verhuurfacturen (= boekingsgangen) draait
-- dagelijks na middernacht (begin van dag) en de verkoop wordt maandelijks
-- alleen in de nacht na 10e werkdag van de maand doorgezet.
-- IF nacht na 10e werkdag van de maand (<28>n<EFBFBD>geen weekend <20>n<EFBFBD>geen vrije dag)!
-- alleen in de nacht na 1e werkdag van de maand doorgezet.
-- IF nacht na 1e werkdag van de maand (<28>n<EFBFBD>geen weekend <20>n<EFBFBD>geen vrije dag)!
-- count_work_days (d1,d2) bepaalt het #werkdagen van d1 tot d2 (als d1=d2,
-- dan return 0); daarom bepalen tov. laatste dag van vorige maand!
IF FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 20 -- Nacht na 1e werkdag!/TODO
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
AND v_holiday = 0
--IF FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1 -- Nacht na 1e werkdag van de maand!
-- AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
-- AND v_holiday = 0
IF TO_CHAR (SYSDATE, 'dd') = '05' -- TODO:Weer terug naar nacht na 1e werkdag van de maand!
THEN
v_fact_count := 0;
v_amount_sum := 0;
v_old_contract_key := -1;
v_old_contract_key := -1; -- Factuur per contract!
-- Factureer/bevries verhuurcontractkosten en verwerk=AV alle eventuele
-- correctiemeldingen.
-- Factureer/bevries (huur)contractkosten.
FOR rec IN c1
LOOP
BEGIN
@@ -2115,9 +1766,9 @@ BEGIN
'Factuur ' || rec.fin_verkoopfactuur_id || ' ' || rec.fin_verkoopfactuur_maand || ' ' || rec.prs_debiteur_naam,
rec.fin_verkoopfactuurkop_key,
2, -- Prioriteit
TRUNC (SYSDATE) + (14 / 24),
TRUNC (SYSDATE) + (7 / 24),
'finance.smartservices@brightlands.com',
'/../../Fplace_A/CUST/BSSC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf'); -- TODO
'/../../Fplace5i/CUST/BSSC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
EXCEPTION
WHEN OTHERS
THEN