MARX#81443 Digitaal "Account/licentie" mutatieformulier in Mareon

svn path=/Mareon/trunk/; revision=62922
This commit is contained in:
Marcel Bourseau
2023-12-11 14:58:39 +00:00
parent 37569b705c
commit f63fe2eb51
2 changed files with 471 additions and 5 deletions

202
sql/Onces/marx24d.sql Normal file
View File

@@ -0,0 +1,202 @@
--
-- $Id$
--
-- Korte beschrijving wat het script doet
-- Voor dbuser invullen: - indien script voor 1 klant is: 'MARX' (de klantcode, zoals vermeld in fac_version_cust)
-- - script is voor meerdere klanten: 'AAXX' (de groepcode, zoals vermeld in fac_version_group)
-- - script is voor meerdere klanten met naam volgens een bepaald patroon: '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM'
--
DEFINE thisfile = 'MARX24d.SQL'
DEFINE dbuser = '^MARX'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
WHENEVER SQLERROR CONTINUE;
PROMPT &fcltcusterr
SET DEFINE OFF
------ payload begin ------
-- MARX#81443 Digitaal "Account/licentie" mutatieformulier in Mareon
-- Nieuwe stdmelding "Licentie/account mutatieformulier", vakgroep etc...
-- Kostenplaats zetten we uit, voor zowel FE (2) als FOBO (8) --> 2+8=10
UPDATE ins_srtdiscipline
SET ins_srtdiscipline_kostenklant = 10
WHERE ins_srtdiscipline_key = 1;
-- Nieuwe vakgroeptype, voor alleen leveranciers evt...
INSERT INTO ins_tab_discipline (ins_discipline_key, ins_discipline_module, ins_discipline_omschrijving, ins_discipline_kpnverplicht, ins_srtdiscipline_key, ins_discipline_btw)
SELECT 6, 'MLD', 'Mareon Aanvragen', 0, 1, 1 from dual;
INSERT INTO mld_disc_params (mld_ins_discipline_key, mld_disc_params_factuurappr, mld_disc_params_factuurgrens, mld_disc_params_notify, mld_disc_params_opdr_kosten,
mld_disc_params_directklaar, mld_disc_params_frontendprio, mld_disc_params_bonotify, mld_disc_params_fenotes, mld_disc_params_eigen_kp,
mld_disc_params_startdatum, mld_disc_params_offerteauto, mld_disc_params_keten)
SELECT 6, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0
FROM dual;
-- Vakgroep gaan we hidden maken
-- Selector mode vakgroep/melding voor de frontend. {0(=default)=vakgroep en melding (beide eerst te kiezen), 1=vakgroep readonly, 2=alleen melding}
UPDATE fac_setting
SET fac_setting_pvalue = '2'
WHERE fac_setting_name = 'mld_selector_mode';
DROP SEQUENCE MLD_S_MLD_STDMELDING_KEY;
CREATE SEQUENCE MLD_S_MLD_STDMELDING_KEY START WITH 100 NOCACHE;
-- Nieuwe melding 'Licentie/account mutatieformulier'
INSERT INTO mld_stdmelding (mld_ins_discipline_key, mld_stdmelding_key, mld_stdmelding_omschrijving, mld_stdmelding_subject, mld_stdmelding_t_uitvoertijd, mld_stdmelding_planbaar, mld_stdmelding_slabewaken, mld_stdmelding_notfrontend,
mld_stdmelding_prseigen, mld_stdmelding_notify, alg_onrgoed_niveau, alg_org_obj_niveau, mld_stdmelding_freetext, mld_stdmelding_afmeldtext,
mld_stdmelding_doublecheck, mld_stdmelding_kopieerbaar, mld_stdmelding_kto, mld_stdmelding_autoorder, mld_stdmelding_vereisdienst, mld_stdmelding_regime,
mld_stdmelding_afhankelijk, mld_stdmelding_opdrtypevast, mld_stdmelding_directklaar, mld_stdmelding_kanverwijzen)
SELECT 6, 2, 'Licentie/account mutatieformulier', 0, MLD_T_UITVOERTIJD(tijdsduur=>1,eenheid=>'D'), 1, 0, 0, 0, 0, 'R', -1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0
FROM dual;
-- Label "Contactgegevens t.b.v. facturatie"
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht, mld_kenmerk_omschrijving, mld_kenmerk_hint, mld_kenmerk_default)
SELECT 39, 33, 2, 'S', 10, NULL, 'Uw gegevens (t.b.v. facturatie)', NULL, 'fa-address-card' FROM DUAL;
-- Bedrijfnaam
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype, mld_srtkenmerk_lengte)
VALUES (40, 'Bedrijfnaam', 'C', 50);
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht, mld_kenmerk_omschrijving, mld_kenmerk_hint)
SELECT 40, 40, 2, 'S', 12, 1, NULL, 'Juridische bedrijfsnaam / handelsnaam van uw bedrijf' FROM DUAL;
--Adres
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht, mld_kenmerk_omschrijving, mld_kenmerk_hint)
SELECT 41, 2, 2, 'S', 15, 1, 'Adres/Postbus', 'Straatnaam of postbus' FROM DUAL;
-- Postcode
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht, mld_kenmerk_omschrijving, mld_kenmerk_hint)
SELECT 42, 3, 2, 'S', 18, 1, 'Postcode', 'Postcode' FROM DUAL;
-- Plaats
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht, mld_kenmerk_omschrijving, mld_kenmerk_hint)
SELECT 43, 4, 2, 'S', 20, 1, 'Plaats', 'Plaatsnaam' FROM DUAL;
-- Factuur mailadres
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht, mld_kenmerk_omschrijving, mld_kenmerk_hint)
SELECT 44, 18, 2, 'S', 22, 1, 'Factuur E-mail', 'Uw mailadres voor sturen van de factuur' FROM DUAL;
-- Evt. referentie/opdrachtnummer tbv facturatie
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype, mld_srtkenmerk_lengte)
VALUES (41, 'Opdrachtnummer/referentienummer', 'C', 50);
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht, mld_kenmerk_omschrijving, mld_kenmerk_hint)
SELECT 45, 41, 2, 'S', 25, NULL, NULL, 'Uw evt. opdrachtnummer/referentienummer t.b.v. vermelden op de factuur' FROM DUAL;
-- Naam Contactpersoon
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht)
SELECT 46, 1, 2, 'S', 30, 1 FROM DUAL;
-- Contactpersoon telefoonnummer
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht)
SELECT 47, 5, 2, 'S', 32, 1 FROM DUAL;
-- Gewenste aantal accounts
-- Label "Gewenste aantal accounts"
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht, mld_kenmerk_omschrijving, mld_kenmerk_hint, mld_kenmerk_default)
SELECT 48, 33, 2, 'S', 40, NULL, 'Mareon accounts/licenties', NULL, 'fa-lock-hashtag' FROM DUAL;
INSERT INTO fac_usrtab (fac_usrtab_key, fac_usrtab_naam, fac_usrtab_omschrijving)
VALUES(10,'Mareon accounts','Mareon accounts/licenties');
INSERT INTO fac_usrdata(fac_usrtab_key,fac_usrdata_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr, fac_usrdata_prijs)
VALUES (10, 44, '01-03', 'Maximaal 3 accounts', 3, 0);
INSERT INTO fac_usrdata(fac_usrtab_key,fac_usrdata_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr, fac_usrdata_prijs)
VALUES (10, 45, '04-05', 'Maximaal 5 accounts', 5, 167.58);
INSERT INTO fac_usrdata(fac_usrtab_key,fac_usrdata_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr, fac_usrdata_prijs)
VALUES (10, 46, '06-10', 'Maximaal 10 accounts', 10, 335.16);
INSERT INTO fac_usrdata(fac_usrtab_key,fac_usrdata_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr, fac_usrdata_prijs)
VALUES (10, 47, '11-25', 'Maximaal 25 accounts', 25, 584.88);
-- Dummy view eerst, zodat fac_domein kan worden aangemaakt.
CREATE OR REPLACE VIEW marx_v_accounts_staffel (marx_v_accounts_staffel_key, marx_v_accounts_staffel_omschr, marx_v_accounts_staffel_aantal, marx_v_accounts_staffel_kosten)
AS
SELECT 1, 'MB was here', 0, 0 FROM DUAL;
INSERT INTO fac_kenmerkdomein ( fac_kenmerkdomein_key, fac_kenmerkdomein_module, fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam,
fac_kenmerkdomein_kolomnaam ,fac_kenmerkdomein_kolomtxt)
SELECT 8, 'MLD', 'Mareon accounts', 'MARX_V_ACCOUNTS_STAFFEL', 'MARX_V_ACCOUNTS_STAFFEL_KEY', 'MARX_V_ACCOUNTS_STAFFEL_OMSCHR' FROM DUAL;
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving, mld_srtkenmerk_kenmerktype, fac_kenmerkdomein_key)
SELECT 42, 'Aantal accounts', 'R', 8 FROM DUAL;
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht)
SELECT 49, 42, 2, 'S', 45, 1 FROM DUAL;
-- Ondertekening
-- Label "Ondertekening"
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht, mld_kenmerk_omschrijving, mld_kenmerk_hint, mld_kenmerk_default)
SELECT 50, 33, 2, 'S', 50, NULL, 'Ondertekening', NULL, 'fa-file-signature' FROM DUAL;
-- Vaste tekst "Opdrachtgever akkoord met artikel 4 van gebruiksvoorwaarden...."
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype)
VALUES (43, 'Gebruiksvoorwaarden', 'L');
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht, mld_kenmerk_omschrijving, mld_kenmerk_hint, mld_kenmerk_default)
SELECT 51, 43, 2, 'S', 52, NULL, 'Akkoord met artikel 4 van de gebruiksvooraarden', 'Opdrachtgever verklaart kennis te hebben vernomen van de Gebruiksvoorwaarden Mareon (artikel 4), november 2023 (te vinden in Mareon portaal) en met deze voorwaarden akkoord te gaan.', NULL FROM DUAL;
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype)
VALUES (44, 'Akkoord', 'V');
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht, mld_kenmerk_omschrijving, mld_kenmerk_hint, mld_kenmerk_default)
SELECT 52, 44, 2, 'S', 55, 1, 'Akkoord met artikel 4 van de gebruiksvoorwaarden', 'Opdrachtgever verklaart kennis te hebben vernomen van de Gebruiksvoorwaarden Mareon (artikel 4), november 2023 (te vinden in Mareon portaal) en met deze voorwaarden akkoord te gaan.', NULL FROM DUAL;
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht, mld_kenmerk_omschrijving, mld_kenmerk_hint)
SELECT 53, 1, 2, 'S', 57, 1, 'Naam ondertekenaar', 'Vul hier de naam (en evt functie) van de ondertekenaar in' FROM DUAL;
-- Paraaf/handtekening
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype, mld_srtkenmerk_dimensie)
VALUES (45, 'Paraaf', 'F', 'xxx');
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_verplicht, mld_kenmerk_omschrijving, mld_kenmerk_hint, mld_kenmerk_default)
SELECT 54, 45, 2, 'S', 60, 1, 'Paraaf', 'Paraaf door tekengemachtigde', NULL FROM DUAL;
-- Rechten uitdelen aan:
-- 1. de hoofdgebruiker (en evt andere beheerders) van elke leverancier, oftewel aan de fac_groep "Leverancier Beheerder" (key 11)
-- 2. elke woco-medewerker, oftewel aan de fac_groep "Woco Read" (key 100)
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key, fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write, fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
SELECT 11, fac_functie_key, 6, -1,-1,-1,-1
FROM fac_functie
WHERE fac_functie_code = 'WEB_MLDUSE';
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key, fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write, fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
SELECT 100, fac_functie_key, 6, -1,-1,-1,-1
FROM fac_functie
WHERE fac_functie_code = 'WEB_MLDUSE';
UPDATE fac_menu
SET fac_menu_alturl = 'appl/mld/mld_melding.asp?disc=6' || '&' || 'mld_defaultstdmelding=2',
fac_functie_key = (SELECT fac_functie_key FROM fac_functie WHERE fac_functie_code = 'WEB_MLDUSE')
WHERE fac_menu_altgroep = 1
AND fac_menu_alturl like 'https://marx.mareon%.nl/cust/MARX/flexfiles/menu/Mutatieformulier Mareon accounts nov2023-bijlage.pdf';
-- Alle menutaken die nog geen extra autorisatie hebben, uit zelfservice maar in 1 klap (1x) allemaal hidden maken (via WEB_USER50).
UPDATE fac_menu
SET fac_functie_key = (select fac_functie_key from fac_functie where fac_functie_code = 'WEB_USER50')
WHERE fac_menu_altgroep = 0
AND fac_functie_key IS NULL;
and fac_functie_key IS NULL;
-- Notificatie van afmelden/gereedmelden van melding zetten we op bitje 3: in portaal bij berichten en een mail.
UPDATE fac_srtnotificatie
SET fac_srtnotificatie_mode = 3
WHERE fac_srtnotificatie_code = 'MLDAFM';
-- En de 2 MLD notificaties MLDMEN (mode = 3) en MLDNW3 (mode = 2) gaan we gewoon maar 'ns uitzetten...
UPDATE fac_srtnotificatie
SET fac_srtnotificatie_mode = 0
WHERE fac_srtnotificatie_code IN ('MLDMEN','MLDNW3');
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 1); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile

View File

@@ -10268,6 +10268,269 @@ END mar_update_weiger_returncodes;
/ /
----------------------------------------------------------------------------------------------------------------------------------------------------------
-- MARX#81443 Digitaal "Account/licentie" mutatieformulier in Mareon
CREATE OR REPLACE VIEW marx_v_accounts_staffel (marx_v_accounts_staffel_key, marx_v_accounts_staffel_omschr, marx_v_accounts_staffel_aantal, marx_v_accounts_staffel_kosten)
AS
SELECT fac_usrdata_key, fac_usrdata_code || ': ' || fac_usrdata_omschr || ' (EUR. ' || fac_usrdata_prijs || ' per kwartaal)', fac_usrdata_volgnr, fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key = 10
AND fac_usrdata_verwijder IS NULL;
CREATE OR REPLACE VIEW marx_v_aantalaccounts_woco
AS
SELECT prs_bedrijf_key,
prs_bedrijf_naam,
accounts_ingebruik_no_apikey,
accounts_ingebruik_with_apikey,
accounts_ingebruik_no_apikey + accounts_ingebruik_with_apikey totaal_aantal_accounts,
accounts_ingebruik_no_apikey + 0 aantal_accounts_inuse,
accounts_geregistreerd,
COALESCE(accounts_geregistreerd , '1')- accounts_ingebruik_no_apikey aantal_accounts_beschikbaar,
account_registratiedatum,
(SELECT marx_v_accounts_staffel_kosten FROM marx_v_accounts_staffel WHERE marx_v_accounts_staffel_aantal = accounts_geregistreerd) account_kosten_per_kwartaal
FROM
(
SELECT b.prs_bedrijf_key,
b.prs_bedrijf_naam,
( SELECT count(*)
FROM mar_v_woco_perslid p
WHERE p.prs_bedrijf_key = b.prs_bedrijf_key
AND p.prs_perslid_apikey IS NULL -- Hoofdaccounts met APIkey (tech reden) sluiten we uit, rekenen we niet mee.
)
accounts_ingebruik_no_apikey,
( SELECT count(*)
FROM mar_v_woco_perslid p
WHERE p.prs_bedrijf_key = b.prs_bedrijf_key
AND p.prs_perslid_apikey IS NOT NULL -- Hoofdaccounts met APIkey (tech reden) sluiten we uit, rekenen we niet mee.
)
accounts_ingebruik_with_apikey,
( select prs_kenmerklink_waarde
from prs_kenmerklink
where prs_kenmerk_key = 56
and prs_link_key = b.prs_bedrijf_key
and prs_kenmerklink_niveau = 'B'
and prs_kenmerklink_verwijder is null
)
accounts_geregistreerd,
(select prs_kenmerklink_aanmaak from prs_kenmerklink
where prs_kenmerk_key = 56
and prs_link_key = b.prs_bedrijf_key
and prs_kenmerklink_niveau = 'B'
and prs_kenmerklink_verwijder is null
)
account_registratiedatum
FROM mar_v_opdrachtgevers b
)
WHERE accounts_ingebruik_no_apikey >= 1
AND accounts_ingebruik_with_apikey > 0;
CREATE OR REPLACE VIEW marx_v_aantalaccounts_lev
AS
SELECT prs_bedrijf_key,
prs_bedrijf_naam,
accounts_ingebruik_no_apikey,
accounts_ingebruik_with_apikey,
accounts_ingebruik_no_apikey + accounts_ingebruik_with_apikey totaal_aantal_accounts,
accounts_ingebruik_no_apikey + 1 aantal_accounts_inuse,
accounts_geregistreerd,
COALESCE(accounts_geregistreerd , '3')- accounts_ingebruik_no_apikey - 1 aantal_accounts_beschikbaar,
account_registratiedatum,
(SELECT marx_v_accounts_staffel_kosten FROM marx_v_accounts_staffel WHERE marx_v_accounts_staffel_aantal = accounts_geregistreerd) account_kosten_per_kwartaal
FROM
(
SELECT b.prs_bedrijf_naam,
b.prs_bedrijf_key,
( SELECT count(*)
FROM prs_contactpersoon cp, prs_perslid p
WHERE cp.prs_bedrijf_key = b.prs_bedrijf_key
AND cp.prs_perslid_key IS NOT NULL
AND p.prs_perslid_key = cp.prs_perslid_key
AND p.prs_perslid_apikey IS NULL -- Hoofdaccounts met APIkey die ook gedeeld KUNNEN worden bij meerdere bedrijven (tech reden) sluiten we maar even uit.
)
accounts_ingebruik_no_apikey,
( SELECT count(*)
FROM prs_contactpersoon cp, prs_perslid p
WHERE cp.prs_bedrijf_key = b.prs_bedrijf_key
AND cp.prs_perslid_key IS NOT NULL
AND p.prs_perslid_key = cp.prs_perslid_key
AND p.prs_perslid_apikey IS NOT NULL -- Alleen de hoofdaccounts met APIkey
)
accounts_ingebruik_with_apikey,
( select prs_kenmerklink_waarde
from prs_kenmerklink
where prs_kenmerk_key = 56
and prs_link_key = b.prs_bedrijf_key
and prs_kenmerklink_niveau = 'B'
and prs_kenmerklink_verwijder is null
)
accounts_geregistreerd,
(select prs_kenmerklink_aanmaak from prs_kenmerklink
where prs_kenmerk_key = 56
and prs_link_key = b.prs_bedrijf_key
and prs_kenmerklink_niveau = 'B'
and prs_kenmerklink_verwijder is null
)
account_registratiedatum
FROM prs_bedrijf b
WHERE b.prs_bedrijf_intern IS NULL
AND b.prs_bedrijf_verwijder IS NULL
);
CREATE OR REPLACE VIEW marx_v_rap_licentiekosten
AS
SELECT 'Opdrachtgever' prs_bedrijf_type,
prs_bedrijf_key,
prs_bedrijf_naam,
accounts_ingebruik_no_apikey,
accounts_ingebruik_with_apikey,
totaal_aantal_accounts,
aantal_accounts_inuse,
accounts_geregistreerd,
aantal_accounts_beschikbaar,
account_registratiedatum,
account_kosten_per_kwartaal
FROM marx_v_aantalaccounts_woco
UNION ALL
SELECT 'Opdrachtnemer' prs_bedrijf_type,
prs_bedrijf_key,
prs_bedrijf_naam,
accounts_ingebruik_no_apikey,
accounts_ingebruik_with_apikey,
totaal_aantal_accounts,
aantal_accounts_inuse,
accounts_geregistreerd,
aantal_accounts_beschikbaar,
account_registratiedatum,
account_kosten_per_kwartaal
FROM marx_v_aantalaccounts_lev;
CREATE OR REPLACE PROCEDURE marx_post_mld_melding_save (p_mld_melding_key IN NUMBER)
IS
v_mld_stdmelding_key NUMBER(10);
v_prs_perslid_key NUMBER(10);
v_woco_bedrijf_key NUMBER(10);
v_lev_bedrijf_key NUMBER(10);
v_max_accounts NUMBER(10);
v_aant_account_inuse NUMBER(10);
v_mag_accounts_aanpassen NUMBER(1);
v_mld_melding_opmerking VARCHAR2(255);
v_prs_bedrijf_naam VARCHAR2(255);
BEGIN
SELECT mld_stdmelding_key
INTO v_mld_stdmelding_key
FROM mld_melding m
WHERE m.mld_melding_key = p_mld_melding_key;
IF v_mld_stdmelding_key = 2
THEN
-- Standaard melding 'Licentie/account mutatieformulier'
-- Dan gaan we nog een POST-actie doen: update van aantal accounts van betreffende bedrijf...
SELECT m.prs_perslid_key, acc.marx_v_accounts_staffel_aantal
INTO v_prs_perslid_key, v_max_accounts
FROM mld_melding m, mld_kenmerkmelding km, marx_v_accounts_staffel acc
WHERE m.mld_melding_key = p_mld_melding_key
AND km.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_key = 49
AND fac.safe_to_number(km.mld_kenmerkmelding_waarde) = acc.marx_v_accounts_staffel_key;
-- Is het de opdrachtgever die accounts aanvraagt?
SELECT MAX(prs_bedrijf_key)
INTO v_woco_bedrijf_key
FROM mar_v_woco_perslid
WHERE prs_perslid_key = v_prs_perslid_key;
v_mag_accounts_aanpassen := 0;
IF v_woco_bedrijf_key IS NOT NULL
THEN
-- WOCO Bedrijf is gevonden
-- Eerst nog check of gekozen/gewenste max. accounts niet lager is dan het aantal actieve gebruikers bij de WOCO nu, dat mag niet!
SELECT aantal_accounts_inuse
INTO v_aant_account_inuse
FROM marx_v_aantalaccounts_woco
WHERE prs_bedrijf_key = v_woco_bedrijf_key;
IF v_max_accounts >= v_aant_account_inuse
THEN
v_mag_accounts_aanpassen := 1;
END IF;
ELSE
-- Woco niet gevonden, dan kan het nog de leverancier LEV zijn...
-- Omdat de v_prs_perslid_key vaker bij een andere leverancier (bij contactpersoon) kan zijn geregsitreerd, mn (of in marx uitsluitend) als die apikey heeft (tbv shared views),
-- zijn we op zoek naar de contactpersoon die het eerste bij v_prs_perslid_key is aangemaakt (origineel), vandaar MIN:
SELECT MAX(cp.prs_bedrijf_key)
INTO v_lev_bedrijf_key
FROM prs_contactpersoon cp
WHERE cp.prs_contactpersoon_key = ( SELECT MIN(cp2.prs_contactpersoon_key)
FROM prs_contactpersoon cp2
WHERE cp2.prs_perslid_key = v_prs_perslid_key
AND cp2.prs_contactpersoon_verwijder IS NULL
);
IF v_lev_bedrijf_key IS NOT NULL
THEN
-- LEV Bedrijf is gevonden
-- Eerst nog check of gekozen/gewenste max. accounts niet lager is dan het aantal actieve gebruikers bij de LEV nu, dat mag niet!
SELECT aantal_accounts_inuse
INTO v_aant_account_inuse
FROM marx_v_aantalaccounts_lev
WHERE prs_bedrijf_key = v_lev_bedrijf_key;
IF v_max_accounts >= v_aant_account_inuse
THEN
v_mag_accounts_aanpassen := 1;
END IF;
END IF;
END IF;
IF v_woco_bedrijf_key IS NOT NULL OR v_lev_bedrijf_key IS NOT NULL
THEN
IF v_mag_accounts_aanpassen = 1
THEN
SELECT prs_bedrijf_naam
INTO v_prs_bedrijf_naam
FROM prs_bedrijf
WHERE prs_bedrijf_key = COALESCE(v_woco_bedrijf_key, v_lev_bedrijf_key);
prs.upsertkenmerk (56, COALESCE(v_woco_bedrijf_key, v_lev_bedrijf_key), v_max_accounts);
-- We gaan de melding direct afsluiten/afmelden
IF v_woco_bedrijf_key IS NOT NULL
THEN
v_mld_melding_opmerking := 'Uw melding is afgehandeld - het aantal accounts is voor bedrijf ' || v_prs_bedrijf_naam || ' aangepast naar het maximum van: ' || v_max_accounts || '. Mail Mareon Helpdesk de gebruikersnamen/mailadressen voor de nieuwe accounts door, u krijgt na verwerking ervan een bevestigingsberichtje terug.';
END IF;
IF v_lev_bedrijf_key IS NOT NULL
THEN
v_mld_melding_opmerking := 'Uw melding is afgehandeld - het aantal accounts is voor bedrijf ' || v_prs_bedrijf_naam || ' aangepast naar het maximum van: ' || v_max_accounts || '.';
END IF;
ELSE
-- We gaan de melding direct afsluiten/afmelden, ook als het aantal niet kan/mag worden aangepast.
v_mld_melding_opmerking := 'Uw melding is afgehandeld - bedrijf ' || v_prs_bedrijf_naam || ' heeft op dit moment te veel accounts in gebruik (aantal = ' || v_aant_account_inuse || '): het aantal accounts kan daarom niet worden aangepast naar maximum aantal van ' || v_max_accounts || '.';
END IF;
ELSE
-- We gaan de melding direct afsluiten/afmelden, ook als er geen bedrijf kan worden gevonden (wat eigenlijk niet kan)
v_mld_melding_opmerking := 'Uw melding is afgehandeld - bedrijf is niet gevonden, daardoor kan het aantal accounts niet aangepast worden.';
END IF;
UPDATE mld_melding
SET mld_melding_opmerking = v_mld_melding_opmerking,
mld_melding_status = 5
WHERE mld_melding_key = p_mld_melding_key;
fac.trackaction ('MLDAFM', p_mld_melding_key, 4, NULL, 'Uw melding is gereed gemeld');
END IF;
END;
/
---------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------
-- Webservice 7. View tbv webservice voor Leverancier (SIDB-facturen) -- Webservice 7. View tbv webservice voor Leverancier (SIDB-facturen)
@@ -14654,10 +14917,11 @@ BEGIN
IF v_prs_perslid_key IS NULL IF v_prs_perslid_key IS NULL
THEN THEN
-- Aanmaken en koppelen perslid alleen als aantal accounts nog niet aan max. zit, dat gaan we hier checken ... -- Aanmaken en koppelen perslid alleen als aantal accounts nog niet aan max. zit, dat gaan we hier checken ...
SELECT COUNT (*) -- MARX#81443 Digitaal "Account/licentie" mutatieformulier in Mareon, we maken nu gebruik van nieuw view
INTO v_aantal_accounts_nu SELECT aantal_accounts_inuse
FROM prs_contactpersoon INTO v_aantal_accounts_nu
WHERE prs_bedrijf_key = v_prs_bedrijf_key AND prs_perslid_key IS NOT NULL AND prs_contactpersoon_verwijder IS NULL; FROM marx_v_aantalaccounts_lev
WHERE prs_bedrijf_key = v_prs_bedrijf_key;
-- MARX#63257: Het aantal maximum accounts van 3 stuks per leverancier kunnen instellen -- MARX#63257: Het aantal maximum accounts van 3 stuks per leverancier kunnen instellen
SELECT prs_bedrijf_maxaccounts SELECT prs_bedrijf_maxaccounts
@@ -14667,7 +14931,7 @@ BEGIN
IF v_aantal_accounts_nu + 1 > v_max_accounts IF v_aantal_accounts_nu + 1 > v_max_accounts
THEN THEN
v_result := v_prefix || 'Het maximum aantal accounts van ' || v_max_accounts || ' is al in gebruik'; v_result := v_prefix || 'Het maximum aantal accounts van ' || v_max_accounts || ' is al in gebruik. Via menutaak "Mutatieformulier Accounts" kun u desgewenst zelf extra accounts/licenties aanmaken';
END IF; END IF;
END IF; END IF;