From 294bb8bfd0252d16c2d8ea9da97f6fa7562742bc Mon Sep 17 00:00:00 2001 From: Developer01 Date: Tue, 11 Feb 2025 16:48:09 +0100 Subject: [PATCH] easy/signFLOW Updates --- .../01_DD_ECM/Update/1.9.8.1.sql | 15 +- .../01_DD_ECM/Update/1.9.8.2.sql | 164 ++++++++++++++++++ .../Update/Added2Main_script/1.9.7.5.sql | 10 +- .../02_TASKFLOW/Updates/2.4.1.0.sql | Bin 6104 -> 10128 bytes .../03_EASYFLOW/Updates/2.2.0.0.sql | Bin 3490 -> 5324 bytes .../10_ENVELOPE_CREATOR/1.5.4.0.sql | 76 +++++++- DEVELOP/Database_Migration.sql | 140 +++++++-------- 7 files changed, 328 insertions(+), 77 deletions(-) create mode 100644 00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.2.sql diff --git a/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.1.sql b/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.1.sql index 2502caa..14a718e 100644 --- a/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.1.sql +++ b/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.1.sql @@ -1,5 +1,4 @@ UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.1'; -GO IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE Name = N'GENERAL_VIEWER' AND Object_ID = Object_ID(N'TBDD_USER')) @@ -13,5 +12,17 @@ IF NOT EXISTS(SELECT 1 FROM sys.columns AND Object_ID = Object_ID(N'TBDD_USER')) BEGIN ALTER TABLE TBDD_USER - ADD WAN_ENVIRONMENT BIT NOT NULL DEFAULT 0 + ADD WAN_ENVIRONMENT BIT NOT NULL DEFAULT 0; END + +CREATE OR ALTER VIEW [dbo].[VWDD_GROUPS_USER] AS +select + USR.GUID AS USR_ID + ,USR.USERNAME, + GRP.GUID AS GRP_ID + ,GRP.NAME AS GRP_NAME + ,GU.ADDED_WHEN + ,GU.ADDED_WHO +from + TBDD_GROUPS GRP INNER JOIN TBDD_GROUPS_USER GU ON GRP.GUID = GU.GROUP_ID + INNER JOIN TBDD_USER USR ON GU.USER_ID = USR.GUID; diff --git a/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.2.sql b/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.2.sql new file mode 100644 index 0000000..bb13a33 --- /dev/null +++ b/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.2.sql @@ -0,0 +1,164 @@ +UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.2'; +--DROP TABLE TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE +CREATE TABLE TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE +( + GUID INT IDENTITY(1,1), + SPECNAME VARCHAR(100) NOT NULL, + Row_Caption VARCHAR(250) NOT NULL, + Area VARCHAR(100) NOT NULL, + xPosition INTEGER NOT NULL DEFAULT 10, + --yPosition INTEGER NOT NULL, + SequenceItem INTEGER NOT NULL DEFAULT 1, + Y_eq_lastrow BIT NOT NULL DEFAULT 0, + Display BIT NOT NULL DEFAULT 1, + Active BIT NOT NULL DEFAULT 1, + AddedWho VARCHAR(50) DEFAULT 'DD_ECM DEFAULT' NOT NULL, + AddedWhen DATETIME DEFAULT GETDATE(), + ChangedWho VARCHAR(50), + ChangedWhen DATETIME, + CONSTRAINT PK_TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE PRIMARY KEY (GUID), + CONSTRAINT UNIQUE_TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE UNIQUE(SPECNAME) +) +GO +------------------------------------------------------------------------------ + +CREATE TRIGGER TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_AFT_UPD ON TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE +FOR UPDATE +AS + UPDATE TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE SET ChangedWhen = GETDATE() FROM INSERTED WHERE TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE.GUID = INSERTED.GUID +GO +CREATE VIEW VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS AS +SELECT + A.SPEC_NAME, + A.ITEM_VALUE, + B.Area, + B.Row_Caption, + B.xPosition, + B.Y_eq_lastrow, + B.SequenceItem, + B.Display, + A.REFERENCE_GUID +FROM + (SELECT * FROM TBEDMI_ITEM_VALUE ) A INNER JOIN + (SELECT * FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Active = 1) B ON A.SPEC_NAME = B.SPECNAME +GO +CREATE FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_TAX] (@pMSGID VARCHAR(100)) +RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),Row_Caption Varchar(100), SequenceItem INT) +AS +BEGIN + DECLARE @GROUP_COUNTER INT,@INDEX INT = 60 + DECLARE cursGroupCounter CURSOR FOR + select GROUP_COUNTER from TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_TAXPOS_RATE' ORDER BY GROUP_COUNTER + OPEN cursGroupCounter + FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER + WHILE @@FETCH_STATUS = 0 + BEGIN + DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Row_Caption VARCHAR(100) + DECLARE cursPosItems CURSOR FOR + select A.SPEC_NAME,ITEM_VALUE, B.Row_Caption from TBEDMI_ITEM_VALUE A INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B ON A.SPEC_NAME = B.SPECNAME WHERE REFERENCE_GUID = @pMSGID And A.SPEC_NAME IN ('INVOICE_TAXPOS_AMOUNT', + 'INVOICE_TAXPOS_RATE','INVOICE_TAXPOS_TYPE') AND GROUP_COUNTER = @GROUP_COUNTER ORDER BY B.SequenceItem + OPEN cursPosItems + FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Row_Caption + WHILE @@FETCH_STATUS = 0 + BEGIN + SET @INDEX += 1 + INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,Row_Caption,SequenceItem) VALUES + (@SPEC_NAME,@ITEM_VALUE,'TAXPOS',@Row_Caption,@INDEX) + FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE, @Row_Caption + END + CLOSE cursPosItems + DEALLOCATE cursPosItems + FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER + END + CLOSE cursGroupCounter + DEALLOCATE cursGroupCounter +RETURN +END +GO + +CREATE FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID VARCHAR(100)) +RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),SequenceItem INT) +AS +BEGIN + DECLARE @GROUP_COUNTER INT,@INDEX INT = 15 + DECLARE cursGroupCounter CURSOR FOR + select GROUP_COUNTER from TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_POSITION_AMOUNT' ORDER BY GROUP_COUNTER + OPEN cursGroupCounter + FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER + WHILE @@FETCH_STATUS = 0 + BEGIN + DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100) + DECLARE cursPosItems CURSOR FOR + select A.SPEC_NAME,ITEM_VALUE from TBEDMI_ITEM_VALUE A INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B ON A.SPEC_NAME = B.SPECNAME WHERE REFERENCE_GUID = @pMSGID And A.SPEC_NAME IN ('INVOICE_POSITION_AMOUNT', + 'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_ARTICLE') AND GROUP_COUNTER = @GROUP_COUNTER ORDER BY B.SequenceItem + OPEN cursPosItems + FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE + WHILE @@FETCH_STATUS = 0 + BEGIN + SET @INDEX += 1 + INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,SequenceItem) VALUES + (@SPEC_NAME,@ITEM_VALUE,'POSITION',@INDEX) + FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE + END + CLOSE cursPosItems + DEALLOCATE cursPosItems + FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER + END + CLOSE cursGroupCounter + DEALLOCATE cursGroupCounter +RETURN +END +GO + +CREATE FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_CUST_RESULT] (@pMSGID VARCHAR(100)) +RETURNS TABLE +AS RETURN + ( + SELECt A.SPEC_NAME,A.ITEM_VALUE,A.Area,A.Row_Caption,A.xPosition,A.Y_eq_lastrow,A.SequenceItem ORDER_SEQ,A.Display FROM VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS A + WHERE REFERENCE_GUID = @pMSGID + AND A.SPEC_NAME NOT IN ('INVOICE_POSITION_AMOUNT', + 'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_ARTICLE','INVOICE_TAXPOS_AMOUNT', + 'INVOICE_TAXPOS_RATE','INVOICE_TAXPOS_TYPE') + UNION + SELECT SPEC_NAME,ITEM_VALUE,Area,'' Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, 1 Display FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID) + UNION + SELECT SPEC_NAME,ITEM_VALUE,Area,Row_Caption Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, 1 Display FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_TAX] (@pMSGID) + ) +GO +DELETE FROM TBDD_SQL_COMMANDS WHERE TITLE = 'VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS'; +INSERT INTO TBDD_SQL_COMMANDS (TITLE,SQL_COMMAND) VALUES +('VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS',' +SELECT * FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_CUST_RESULT] (''@MSG_ID'') ORDER BY ORDER_SEQ') + +DELETE FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE; +Insert INTO TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE +(SPECNAME, Row_Caption, Area, xPosition, SequenceItem, Y_eq_lastrow, Display) values +('INVOICE_TYPE', '', 'TYPE', 10, 1, 0, 0), +('INVOICE_CURRENCY', '', 'TYPE', 10, 2, 0, 0), +('INVOICE_NUMBER', 'Rechnungsnummer/Invoice-No:', 'HEAD', 10, 3, 0, 1), +('INVOICE_DATE', 'Datum/Date:', 'HEAD', 10, 4, 0, 1), +('INVOICE_SERVICE_DATE','Leistungsdatum/Service date:', 'HEAD', 10, 5, 0, 1), +('INVOICE_SELLER_NAME', '', 'SELLER', 10, 6, 0, 1), +('INVOICE_SELLER_ADRESS', '', 'SELLER', 10, 7, 0, 1), +('INVOICE_SELLER_POSTALCODE', '', 'SELLER', 10, 8, 0, 1), +('INVOICE_SELLER_CITY', '', 'SELLER', 35, 9, 1, 1), +('INVOICE_SELLER_TAX_ID', 'USt-ID/Seller tax ID:', 'SELLER', 10, 10, 0, 1), +('INVOICE_BUYER_NAME', '', 'BUYER', 10, 11, 0, 1), +('INVOICE_BUYER_ADRESS', '', 'BUYER', 10, 12, 0, 1), +('INVOICE_BUYER_POSTALCODE', '', 'BUYER', 10, 13, 0, 1), +('INVOICE_BUYER_CITY', '', 'BUYER', 35, 14, 1, 1), +('INVOICE_POSITION_AMOUNT', '', 'POSITION', 10, 15, 0, 0), +('INVOICE_POSITION_ARTICLE', '', 'POSITION', 10, 16, 0, 0), +('INVOICE_TAXPOS_TAX_RATE', '', 'POSITION', 10, 17, 0, 1), +('INVOICE_TOTAL_NET', 'Nettobetrag/Net amount:', 'AMOUNT', 10, 58, 0, 1), +('INVOICE_TOTAL_GROSS', 'Bruttobetrag/Gross amount:', 'AMOUNT', 10, 59, 0, 1), +('INVOICE_TAXPOS_RATE', '', 'TAXPOS', 10, 60, 1, 0), +('INVOICE_TAXPOS_AMOUNT', '', 'TAXPOS', 10, 61, 0, 0), +('INVOICE_TAXPOS_TYPE', '', 'TAXPOS', 10, 62, 1, 1), +('INVOICE_PAYMENT_TERMS','', 'PAYMENT', 10, 100, 0, 1), +('INVOICE_PAYMENT_IBAN','IBAN:', 'PAYMENT', 10, 101, 0, 1), +('INVOICE_PAYMENT_BIC','BIC:', 'PAYMENT', 10, 102, 0, 1); +GO + + + diff --git a/00_DB_SETUP_SINGLE/01_DD_ECM/Update/Added2Main_script/1.9.7.5.sql b/00_DB_SETUP_SINGLE/01_DD_ECM/Update/Added2Main_script/1.9.7.5.sql index 843ccc4..c5edaa8 100644 --- a/00_DB_SETUP_SINGLE/01_DD_ECM/Update/Added2Main_script/1.9.7.5.sql +++ b/00_DB_SETUP_SINGLE/01_DD_ECM/Update/Added2Main_script/1.9.7.5.sql @@ -1,7 +1,7 @@ -USE [DD_ECM] - -UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.5' -GO +USE [DD_ECM] + +UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.5' +GO if NOT EXISTS (select 1 from sysobjects where name = 'TBDD_EMAIL_TEMPLATE' ) CREATE TABLE TBDD_EMAIL_TEMPLATE ( @@ -21,6 +21,6 @@ if NOT EXISTS (select 1 from sysobjects where name = 'TBDD_EMAIL_TEMPLATE' ) CONSTRAINT UQ_TBCUST_EMAIL_TEMPLATE_TITLE UNIQUE (TITLE) ); ELSE - ALTER TABLE [dbo].[TBDD_EMAIL_TEMPLATE] ADD [LANGUAGE] varchar(5) DEFAULT 'de-DE'; + ALTER TABLE [dbo].[TBDD_EMAIL_TEMPLATE] ADD [LANGUAGE] varchar(5) DEFAULT 'de-DE'; ALTER TABLE [dbo].[TBDD_EMAIL_TEMPLATE] ADD [CONNECTED_TEMPLATE] int DEFAULT 0; GO \ No newline at end of file diff --git a/01_SMART_UP_TOOLS/02_TASKFLOW/Updates/2.4.1.0.sql b/01_SMART_UP_TOOLS/02_TASKFLOW/Updates/2.4.1.0.sql index 4dc66bcc4d2cc1e0760ee828a8363e8e1d1f86e1..82f68229ba84d9c8e65e558115143dac055e8cd5 100644 GIT binary patch literal 10128 zcmeHNZEqS!5T378>VLRz;3`3m(|)L`O65InF}QFsxR!NF;;1i*>nL{AmmlBud3G3f z_x6rpRjN{h&;hqQJ3H??Gk1Ug^;}M+FCEEcAQ`^9xa&(HCo;wFa~WfNj+r@rbNu!J zQOFtYW*9pL)C8kn<7�wB>VLPjDULK9k?%CwVRJaAkn&04sM<=u?c}$Scg<;`11D zFXUHTKe`o7`AR;OPuz7ZL$`kFC>Y2R`_A!yE-gnFY3#YV&j2?BWm90wfb|btZR~L) zZ{)pP1OF|?i8rhGEaaKvi!@F^$+e@K)K0+7nS6&m3UHwkI>y}q`!s9ub+E3F)l+#X zzW~=Oxx@NnH%6@Kc+2f{1^64#O>LZFhXUW^X^6GtwE(x2d+tWZkU>)p@F8Da%#Q#! z38?B|6=|Je&m8o39TwI0cKEXu*IBI;GGL`dC@a;|#97Z6BYo^W1O{3YAr4o%9RRlP z=p^MIhnBs33h*&=w9i%&AA^Gv(7an3-$o*|iw>mKg9q`qg;?+f^n9?DJv1Rv_4bd^ zBIe+T@s3_c?k4ar-q8aK{9{~GkLvH3W!y(H4<$YfT~s)M&UqH_6q>ncJK8bb*UOqS@2cf+iFlu$1P?{~xtt>tv;6D7%m(6ouRzqX zGw0uCe)X7r&R5NMwWhZ{@tKb%|xB0FcT(q7jMR~Ws+_0r99y}}&WbHuexaO!jPGsKhucFN>Jv=+DoRTtoVv8o5kT4TOXnJtAL*ugH$sBJ%A zALWQyr+|2ZczlRoS~IgYW-zncltNp51*lc+f zBkTyLtmiIg3@ zNwIq<)=npo!WdXL!Lc6y0lM4_L!N07Db&JgJ4cqA&apB+hBlso?r@ftNZVzXfOgbc z*^bv)s0n8J{4h#XLzvw*fUS(VTzcf$A>vv7uKy^kI<)c z%;b(A?Ng*wsBctL@A*4`lz7KJi1JIXB-h$OQQAXEDqcpnv4bL|+FwbbScyzAONrA4 zwI7ng)$OA3V}jN61>Gg}+#YCQ--o>tl@WVAO6LV;7?BG|ap23 zF>15+XZ)shG1@TZ=_kWIdl=m3ez>(-)Og2OxeZ0Bj4s?6!>*3jbo8>z$i|f_`l&)u zhxC2b6**3^#yyYCusq{fQxd0E7SwNwGlrwbu>#X-l>6Op1*Mm+n1U;w2@B^V^p67E z(iS@v(ApI&_oFti*uI)hsjII#H2(X@UJsdKt;=T9Go=nP#aY)awD{(um5uP!t?u{H zFXA1l;mUfT=h1d;2OsBbgnRn)TqB-ZdwQn(HP+WuNR1`di)4h=m_j>JjGhADQDZ;g z9P=J)NJ-2s&(rPB+9t9Q#i+4?|1G-c_&y_3otN{bSl>1q>!FP}z0b&)x9w&|#`D@v z+kGCh&tt;a%@`f$C(If4dCUOWQyfJpsru|>pT}5#EquPYdwEQn#VnD@^bmhr>)z2p z@QnO1o}l;ew4Kk;`2_t6nb47Z30pgKy__Tb@|j!%6$bM{efs_3e%6;@n>6P6k82|mm*eP+&?F!v3yhxF3EwJ!G+n`Y8pjyzp$Jx6E2 zZB!di9(oQ9%+~Yeb;?Qo>Uh4q+IF$^)ReDXSh1)L#2jknp<1Pm*=gY02j9A`g?15a zrR`9*9`$*?C86*iu2U#kO727Z>iZkEZ|3Zm)Y(pq&^Bw`C3a~!Mom~>)W4y!t-r)O z$8XuNdRsW3A^qAd;=kB)l((|~WNVtT$ZjZg)0}Cxd|$19zS+`&G{;VwUgNqyJJDrc zM%Zf#8J$84;oC#%m%jEiKMmoHChZC`#x)_0H}bQ*b??HwKymkRf|;_t%%=4k?Z8JnXht=}GsM%$dg?4Zwa-{f^#8OoViCt|I_`}4ox&)h M@-dt6Hc4sx1Ka7$MF0Q* delta 17 YcmbQ>e?x!6JeJK1{@(P^dW>i$daup_@e4!wFD!QIJAc1gruR6AD{O7cFt&K z&)IWgmxK_6bXL1_zwONV_tRSDGLez2_e0*I|# z;@<*$GeDhV_bI;nGL(M$4)7e{e^36AKjpQ&!?y=ob9{*R6L3c0a4Zih+<3MxWBE&N z8lFXbYLRJ^>DOy#m$`oZc}%MA$KOI!iV_hjj5|l=PV;AIAOM4qIUTp8Vx7 zs<~S(x4vqMhxGc05ToKdXF4dmL4s$)#ZAttuNI1gJ?V^ zNvB_-8*M;K#IxMiCE5F+Nt?2coM64(ts^yPwC#ztG8S7%iJra+vD^1gLh>yf7v_MZ;kt8VDts! zz-iw-le`bQTP6(=apY6Zq^^9RC))DCy;RNzdN^ivjDY{26%R2pj4>^|kX!i!^T#!M z_n|xnuR-cnhIkI;XY8J(x--X|@kTxZ@;yGBSKa~l1J(yvuR-Mo=eJl-aqvALUfSZaN>ZVq4W$PC_2eGcfSd*WM9B5p@kg*|-O z5AI>k%TKO$(+~F-hyc^baU5d_?8OekbT&+SjD4U^uO<8(qKYN{A&hEmt{MLAE=d14- zj4yMH-f>Q(Yp3xBRXDFVeu0S!wuv(LKd0 zba{@~v(hBrl#{nweU_(oYF(SwJeI%D{PF3&9>MJy#K^HM+Ns_>~*Bmm&yZVY}^J;!Ab5_3o2G2QZ##m-GeXp5Z&#Ru)JI&_1 hLVcT-S1fk%_O>uT@icyF>ElMK5qgDyh|gVE&uT;h{mm}W5p z`IFak>oXfMC``W2RLBXEcVzHmaG9(tAU?T;M_@7^H^*cLW-DEwi42?&IR*uw8G1mr zGm!RV2xD*sir50NAp=O2JA?n^^&*m!PjI?Tmf+yq{D}DyD>qaEq+s)YPHtv)gi2We Dr(-4G diff --git a/01_SMART_UP_TOOLS/10_ENVELOPE_CREATOR/1.5.4.0.sql b/01_SMART_UP_TOOLS/10_ENVELOPE_CREATOR/1.5.4.0.sql index 9e00458..3f65e4a 100644 --- a/01_SMART_UP_TOOLS/10_ENVELOPE_CREATOR/1.5.4.0.sql +++ b/01_SMART_UP_TOOLS/10_ENVELOPE_CREATOR/1.5.4.0.sql @@ -8,6 +8,7 @@ BEGIN ALTER TABLE [dbo].[TBSIG_ENVELOPE_RECEIVER] DROP CONSTRAINT [DF_TBSIG_ENVELOPE_RECEIVER_TFA_ENABLED]; ALTER TABLE [dbo].TBSIG_ENVELOPE_RECEIVER DROP COLUMN TFA_ENABLED; END + IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TBSIG_CONFIG' @@ -20,6 +21,8 @@ ALTER TABLE [dbo].TBSIG_ENVELOPE ADD TFA_ENABLED BIT NOT NULL DEFAULT 0; GO ALTER TABLE [dbo].TBSIG_CONFIG ADD DEF_TFA_ENABLED BIT NOT NULL DEFAULT 0; GO +ALTER TABLE [dbo].TBSIG_CONFIG ADD DEF_TFA_WITH_PHONE BIT NOT NULL DEFAULT 0; +GO -- Changed 23.01.2025 MS TFA_ENABLED -- Changed 07.01.2025 MS VerifType integriert ALTER VIEW [dbo].[VWSIG_ENVELOPE_DATA] AS @@ -55,7 +58,7 @@ SELECT FROM [TBSIG_ENVELOPE] ENV INNER JOIN TBDD_USER USR ON ENV.USER_ID = USR.GUID GO -IF EXISTS(SELECT * +IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TBSIG_ENVELOPE_RECEIVER' AND COLUMN_NAME = 'PHONE_NUMBER') @@ -63,6 +66,7 @@ BEGIN ALTER TABLE [dbo].TBSIG_ENVELOPE_RECEIVER ADD PHONE_NUMBER VARCHAR(30) NOT NULL DEFAULT ''; END GO +--CHANGED 13.11.2024 MS RECEIVER_TERM integriert ALTER VIEW [dbo].[VWSIG_ENVELOPE_RECEIVER] AS SELECT ENV.GUID ENV_ID, @@ -154,4 +158,72 @@ CREATE TRIGGER [dbo].[TBSIG_CHART_AFT_UPD] ON [dbo].[TBSIG_CHART] FOR UPDATE AS UPDATE TBSIG_CHART SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBSIG_CHART.GUID = INSERTED.GUID -GO \ No newline at end of file +GO +IF NOT EXISTS(SELECT 1 FROM TBDD_GROUPS WHERE NAME = 'ENVELOPE-ADMIN') + INSERT INTO TBDD_GROUPS (NAME, INTERNAL,ACTIVE) VALUES ('ENVELOPE-ADMIN',1,1) +GO +CREATE VIEW [dbo].[VWSIG_REPORT_ENVELOPES_OPENED_DELETED] AS +SELECT + DEL.* FROM + (SELECT [ENVELOPE_ID],POS_WHEN FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_REPORT] A where POS_STATUS = 1009) DEL INNER JOIN --DELETED + (SELECT [ENVELOPE_ID],POS_WHEN FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_REPORT] A where POS_STATUS = 3002) REQ ON DEL.ENVELOPE_ID = REQ.ENVELOPE_ID INNER JOIN --AccessCodeSent + (SELECT [ENVELOPE_ID],POS_WHEN FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_REPORT] A where POS_STATUS = 2004) OP ON REQ.ENVELOPE_ID = OP.ENVELOPE_ID --DocOpened +GO +CREATE TABLE [dbo].[TBSIG_REORT_ENV_COUNT]( + GUID INTEGER IDENTITY(1,1) NOT NULL, + ENV_ID INTEGER NOT NULL, + MONTH_REPORT VARCHAR(50) NOT NULL, + ADDED_WHEN DATETIME DEFAULT GETDATE(), +CONSTRAINT PK_TBSIG_REORT_ENV_COUNT PRIMARY KEY (GUID) + +) +GO +INSERT INTO TBDD_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('SIG_REPORT_RECEIVER_ENV_MONTHLY','m.schreiber@digitaldata.works;a.truebenbach@digitaldata.works'); +GO + +INSERT INTO TBDD_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('SIG_CUSTOMER_NAME','Digital Data Testsystem'); +GO +CREATE PROCEDURE [dbo].[PRSIG_EMAIL_REPORT_MONTHLY_ENVELOPES] AS +BEGIN + Declare @Body VARCHAR(MAX),@AM_FINISHED INT,@AM_SENT_DELETED INT, @Month VARCHAR(100),@SUM_MONTH INT,@CUSTOMER VARCHAR(100),@EML_RECEIPIANTS VARCHAR(500) + SELECT @CUSTOMER FROM TBDD_CATALOG WHERE CAT_TITLE = 'SIG_CUSTOMER_NAME'; + SELECT @EML_RECEIPIANTS FROM TBDD_CATALOG WHERE CAT_TITLE = 'SIG_REPORT_RECEIVER_ENV_MONTHLY'; + + Declare @SUBJ VARCHAR(250) = 'Verbrauchsmeldung signFLOW - Kunde: ' + @CUSTOMER + + + SELECT @Month = DATENAME(MONTH, GETDATE() -1) + + SET @Body = 'Automatisch erzeugte Email zur Abrechnung signFLOW-Envelopes:

' + SET @Body += 'Kunde: ' + @CUSTOMER + '

' + SET @Body += 'Monat: ' + @Month + '

' + + SELECT + @AM_FINISHED = COUNT(ENVELOPE_ID) + FROM + [DD_ECM].[dbo].[VWSIG_ENVELOPE_DATA] A LEFT JOIN TBSIG_REORT_ENV_COUNT B ON A.ENVELOPE_ID = B.ENV_ID + WHERE + envelope_State = 1008 and DATEDIFF(month,CHANGED_WHEN,GETDATE()) = 1 + AND B.GUID IS NULL; + SELECT + @AM_SENT_DELETED = COUNT(ENVELOPE_ID) + FROM + VWSIG_REPORT_ENVELOPES_OPENED_DELETED A LEFT JOIN TBSIG_REORT_ENV_COUNT B ON A.ENVELOPE_ID = B.ENV_ID + WHERE + DATEDIFF(month,POS_WHEN,GETDATE()) = 1 + AND B.GUID IS NULL; + + INSERT INTO TBSIG_REORT_ENV_COUNT (ENV_ID,MONTH_REPORT) + SELECT ENVELOPE_ID,@Month FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_DATA] where envelope_State = 1008 and DATEDIFF(month,CHANGED_WHEN,GETDATE()) = 1; + + INSERT INTO TBSIG_REORT_ENV_COUNT (ENV_ID,MONTH_REPORT) + SELECT ENVELOPE_ID,@Month FROM VWSIG_REPORT_ENVELOPES_OPENED_DELETED WHERE DATEDIFF(month,POS_WHEN,GETDATE()) = 1; + + SET @SUM_MONTH = @AM_FINISHED + @AM_SENT_DELETED + SET @Body += 'Anzahl final signierte Envelopes: ' + Convert(Varchar(5),@AM_FINISHED) + '
' + SET @Body += 'Anzahl Gelöschte aber geöffnete Envelopes: ' + Convert(Varchar(5),@AM_SENT_DELETED) + '

' + SET @Body += 'Summe abrechenbare Envelopes: ' + Convert(Varchar(5),@SUM_MONTH) + '

' + + IF LEN(@EML_RECEIPIANTS) > 0 AND LEN(@EML_RECEIPIANTS) > 0 + EXEC PREMAIL_NEW_EMAIL 1,@EML_RECEIPIANTS,@SUBJ,@Body,'sigFLOW-EnvCount',9000,9000,'signFLOW-EnvelopeCount' +END \ No newline at end of file diff --git a/DEVELOP/Database_Migration.sql b/DEVELOP/Database_Migration.sql index 5ea6653..1d36617 100644 --- a/DEVELOP/Database_Migration.sql +++ b/DEVELOP/Database_Migration.sql @@ -1,87 +1,91 @@ ---DROP TABLE TBMigrationLog -CREATE TABLE TBMigrationLog +--DROP TABLE TBDD_MigrationScripts +CREATE TABLE TBDD_MigrationLog ( MigrationID INTEGER NOT NULL, - ScriptName VARCHAR(255) NOT NULL, ExecutedWhen DATETIME NOT NULL, ExecutedWho VARCHAR(50) NOT NULL, ExecState VARCHAR(50), ErrorMessage VARCHAR(500), - CONSTRAINT PK_TBMigrationLog PRIMARY KEY (MigrationID) + CONSTRAINT PK_TBDD_MigrationLog PRIMARY KEY (MigrationID) ) GO ---DROP TABLE TBMigrationScripts -CREATE TABLE TBMigrationScripts +--DROP TABLE TBDD_MigrationScripts +CREATE TABLE TBDD_MigrationScripts ( MigrationID INTEGER IDENTITY(1,1), ScriptName VARCHAR(255) NOT NULL, - ScriptDescription VARCHAR(255), + ModuleName VARCHAR(100) NOT NULL, + ScriptType VARCHAR(255), ScriptPath_Command NVARCHAR(MAX), IsActive BIT NOT NULL DEFAULT 0, AddedWhen DATETIME NOT NULL DEFAULT GETDATE() - CONSTRAINT PK_TBMigrationScripts PRIMARY KEY (MigrationID) + CONSTRAINT PK_TBDD_MigrationScripts PRIMARY KEY (MigrationID) ) GO -INSERT INTO TBMigrationScripts (ScriptName, ScriptDescription, ScriptPath_Command, IsActive) -VALUES ('007', 'FILE', 'E:\TreeSizeFree\1.9.8.1.sql', 1); +INSERT INTO TBDD_MigrationScripts (ScriptName, ModuleName, ScriptType, ScriptPath_Command, IsActive) +VALUES ('007', 'fileFLOW','FILE', 'E:\TreeSizeFree\1.9.8.1.sql', 1); +GO +CREATE PROCEDURE PRDD_MigrationsExecute @Test BIT +AS +BEGIN + DECLARE @MigrationID INT, @ScriptName VARCHAR(255), @ScriptPath_Command NVARCHAR(MAX), @SQL NVARCHAR(MAX),@ScriptType VARCHAR(20); + DECLARE @ROOT_FOLDER VARCHAR(500) = 'E:\DocumentProcessing\Manual\File\DBMigration\' + + DECLARE MigrationCursor CURSOR FOR + SELECT MS.MigrationID, MS.ScriptName, ScriptPath_Command,MS.ScriptType + FROM TBDD_MigrationScripts MS + LEFT JOIN TBDD_MigrationLog ML ON MS.MigrationID = ML.MigrationID + WHERE MS.IsActive = 1 AND ML.MigrationID IS NULL + ORDER BY MS.MigrationID; + OPEN MigrationCursor; + FETCH NEXT FROM MigrationCursor INTO @MigrationID, @ScriptName, @ScriptPath_Command,@ScriptType; + + WHILE @@FETCH_STATUS = 0 + BEGIN + BEGIN TRY + -- Lies das SQL-Skript aus der Datei + IF @ScriptType = 'FILE' + BEGIN + DECLARE @DynamicSQL NVARCHAR(500), @FileContent NVARCHAR(MAX); + SET @DynamicSQL = 'SELECT @FileContentOut = BulkColumn + FROM OPENROWSET(BULK ''' + @ScriptPath_Command + ''', SINGLE_CLOB) AS FileContent'; + + EXEC sp_executesql @DynamicSQL, N'@FileContentOut NVARCHAR(MAX) OUTPUT', @FileContent OUTPUT; + SET @SQL = @FileContent; + PRINT '============= COMMAND FROM FILE =================' + PRINT @SQL + PRINT '==============================' + END + ELSE + SET @SQL = @ScriptPath_Command; + + -- Führe das Skript aus + IF @Test = 1 + BEGIN + PRINT 'EXECUTING - MIGRATION SKRIPT [' + @ScriptName + '] ...' + EXEC sp_executesql @SQL; + PRINT '########################################' + PRINT 'EXECUTION SUCCESSFUL!' + PRINT '########################################' + END + IF @Test = 0 + -- Erfolgreiche Migration protokollieren + INSERT INTO TBDD_MigrationLog (MigrationID, ExecutedWhen, ExecutedWho, ExecState) + VALUES (@MigrationID, GETDATE(), SYSTEM_USER, 'Success'); + END TRY + BEGIN CATCH + DECLARE @ERR VARCHAR(1500) = ERROR_MESSAGE(); + PRINT @ERR + -- Fehler protokollieren + INSERT INTO TBDD_MigrationLog (MigrationID, ExecutedWhen, ExecutedWho, ExecState, ErrorMessage) + VALUES (@MigrationID, GETDATE(), 'XXXX', 'Failed', @ERR); + BREAK; + END CATCH; + PRINT '' + FETCH NEXT FROM MigrationCursor INTO @MigrationID, @ScriptName, @ScriptPath_Command,@ScriptType; + END; ---CREATE PROCEDURE ExecuteMigrations ---AS -BEGIN - DECLARE @MigrationID INT, @ScriptName VARCHAR(255), @ScriptPath_Command NVARCHAR(MAX), @SQL NVARCHAR(MAX),@ScriptDescription VARCHAR(20); - - DECLARE MigrationCursor CURSOR FOR - SELECT MS.MigrationID, MS.ScriptName, ScriptPath_Command,MS.ScriptDescription - FROM TBMigrationScripts MS - LEFT JOIN TBMigrationLog ML ON MS.MigrationID = ML.MigrationID - WHERE ML.MigrationID IS NULL AND MS.IsActive = 1 - ORDER BY MS.MigrationID; - OPEN MigrationCursor; - FETCH NEXT FROM MigrationCursor INTO @MigrationID, @ScriptName, @ScriptPath_Command,@ScriptDescription; - - WHILE @@FETCH_STATUS = 0 - BEGIN - BEGIN TRY - -- Lies das SQL-Skript aus der Datei - IF @ScriptDescription = 'FILE' - BEGIN - DECLARE @DynamicSQL NVARCHAR(500), @FileContent NVARCHAR(MAX); - SET @DynamicSQL = 'SELECT @FileContentOut = BulkColumn - FROM OPENROWSET(BULK ''' + @ScriptPath_Command + ''', SINGLE_CLOB) AS FileContent'; - - EXEC sp_executesql @DynamicSQL, N'@FileContentOut NVARCHAR(MAX) OUTPUT', @FileContent OUTPUT; - SET @SQL = @FileContent; - PRINT '==============================' - PRINT @SQL - PRINT '==============================' - END - ELSE - SET @SQL = @ScriptPath_Command; - - -- Führe das Skript aus - PRINT 'EXECUTING - MIGRATION SKRIPT [' + @ScriptName + '] ...' - EXEC sp_executesql @SQL; - PRINT '########################################' - PRINT 'EXECUTION SUCCESSFUL!' - PRINT '########################################' - - -- Erfolgreiche Migration protokollieren - INSERT INTO TBMigrationLog (MigrationID, ScriptName, ExecutedWhen, ExecutedWho, ExecState) - VALUES (@MigrationID, @ScriptName, GETDATE(), SYSTEM_USER, 'Success'); - END TRY - BEGIN CATCH - DECLARE @ERR VARCHAR(1500) = ERROR_MESSAGE(); - PRINT @ERR - -- Fehler protokollieren - INSERT INTO TBMigrationLog (MigrationID, ScriptName, ExecutedWhen, ExecutedWho, ExecState, ErrorMessage) - VALUES (@MigrationID, @ScriptName, GETDATE(), 'XXXX', 'Failed', @ERR); - BREAK; - END CATCH; - PRINT '' - FETCH NEXT FROM MigrationCursor INTO @MigrationID, @ScriptName, @ScriptPath_Command,@ScriptDescription; - END; - - CLOSE MigrationCursor; - DEALLOCATE MigrationCursor; + CLOSE MigrationCursor; + DEALLOCATE MigrationCursor; END; \ No newline at end of file