-- IQX database structure split by table
-- Source: IQXDatabaseStructure - with comments.sql
-- Table: "pears"."Division"
-- Table comment: List of Divisions in the organisation.
-- Statement count: 11
CREATE TABLE "pears"."Division" (
"divisionid" CHAR(20) NOT NULL
,"name" CHAR(30) NOT NULL
,"Analysis" CHAR(50) NULL
,"DefPayrollCoID" CHAR(1) NULL
,"Colour" INTEGER NULL
,"documenttemplateid" CHAR(12) NULL
,"statementfrequency" CHAR(1) NULL
,"BTS_Title" CHAR(30) NULL
,"BTS_default" CHAR(4) NULL
,"BTX_Default" CHAR(4) NULL
,"ShortCode" CHAR(4) NULL
,"BTS_EmailBody" long VARCHAR NULL
,"DefaultDocPack" CHAR(20) NULL
,"PublishToWeb" SMALLINT NULL DEFAULT 0
,"WebDescription" CHAR(50) NULL
,"ShowAltPersonWizard" SMALLINT NULL DEFAULT 0
,"AllowMovingClientCC" CHAR(1) NULL
,"ExcludeZeroPayChargeWarning" SMALLINT NULL DEFAULT 0
,"Defunct" tinyint NULL DEFAULT 0
,"MailChimpAPIKey" CHAR(60) NULL
,"MailChimpURL" CHAR(60) NULL
,"MailChimpUserName" CHAR(100) NULL
,"IQXNetEmailDetailsID" CHAR(20) NULL
,"AlternativeInvoiceAddress" tinyint NULL DEFAULT 0
,"SortCode" INTEGER NULL
,PRIMARY KEY ("divisionid" ASC)
)
GO
COMMENT ON COLUMN "pears"."Division"."statementfrequency" IS
'=None W=Weekly M=Monthly'
GO
COMMENT ON COLUMN "pears"."Division"."AllowMovingClientCC" IS
' timesheet advanced cancel wizard will allow moving to companies with this status'
GO
COMMENT ON COLUMN "pears"."Division"."ExcludeZeroPayChargeWarning" IS
'Warning suppressed if hours 1 col and either 0 and warning enabled'
GO
COMMENT ON TABLE "pears"."Division" IS
'List of Divisions in the organisation.'
GO
ALTER TABLE "pears"."Division"
ADD FOREIGN KEY "iqacdocumenttemplate" ("documenttemplateid" ASC)
REFERENCES "pears"."IQacDocumentTemplate" ("DocumentTemplateID")
ON DELETE SET NULL
GO
ALTER TABLE "pears"."Division"
ADD FOREIGN KEY "IQXNetEmailDetails" ("IQXNetEmailDetailsID" ASC)
REFERENCES "pears"."IQXNetEmailDetails" ("IQXNetEmailDetailsID")
ON DELETE SET NULL
GO
CREATE TRIGGER "WPK_division_DIVISION" after INSERT,DELETE,UPDATE ORDER 1 ON
"pears"."division"
FOR each statement
BEGIN
CALL "WPKTrackChange"('P','DIVISION')
END
GO
COMMENT TO PRESERVE FORMAT ON TRIGGER "pears"."Division"."WPK_division_DIVISION" IS
{CREATE TRIGGER WPK_division_DIVISION
after INSERT,DELETE,UPDATE ORDER 1 ON
division
FOR each statement
BEGIN
CALL WPKTrackChange('P','DIVISION')
END
}
GO
CREATE TRIGGER "DivisionAudit" after UPDATE OF "documenttemplateid",
"analysis","DefPayrollCoID","IQXNetEmailDetailsID" ORDER 1 ON "pears"."Division"
REFERENCING OLD AS "old_div" NEW AS "new_div"
FOR each ROW
WHEN(EXISTS(SELECT * FROM "AuditItems" WHERE "AreaName" = 'Division' AND "AuditFlag" = 1))
BEGIN
DECLARE @AuditList long VARCHAR;
DECLARE @OldDescrip CHAR(250);
DECLARE @NewDescrip CHAR(250);
DECLARE @DivName CHAR(30);
SELECT "string"(',',"list"("ItemName"),',') INTO @AuditList FROM "AuditItems" WHERE "AreaName" = 'Division' AND "AuditFlag" = 1;
SET @DivName = (SELECT "name" FROM "division" WHERE "Division"."DivisionID" = "old_div"."DivisionID");
-- Override Invoice Layout
IF "locate"(@AuditList,',Override Invoice Layout,') > 0 AND UPDATE("documenttemplateid") THEN
SET @OldDescrip = (SELECT "name" FROM "iqacdocumenttemplate" WHERE "documenttemplateid" = "old_div"."documenttemplateid");
SET @NewDescrip = (SELECT "name" FROM "iqacdocumenttemplate" WHERE "documenttemplateid" = "new_div"."documenttemplateid");
CALL "AuditLog"('DIVISION',"old_div"."DivisionID","string"('Override Invoice Layout Updated - ',@DivName),@OldDescrip,@NewDescrip)
END IF;
-- Analysis
IF "locate"(@AuditList,',Analysis,') > 0 AND UPDATE("analysis") THEN
CALL "AuditLog"('DIVISION',"old_div"."DivisionID","string"('Analysis updated - ',@DivName),"old_div"."analysis","new_div"."analysis")
END IF;
-- Default Payroll Identifier
IF "locate"(@AuditList,',Default Payroll Identifier,') > 0 AND UPDATE("DefPayrollCoID") THEN
CALL "AuditLog"('DIVISION',"old_div"."DivisionID","string"('Default Payroll Identifier updated - ',@DivName),"old_div"."DefPayrollCoID","new_div"."DefPayrollCoID")
END IF;
-- SMTP Profile
IF "locate"(@AuditList,',SMTP Profile,') > 0 AND UPDATE("IQXNetEmailDetailsID") THEN
CALL "AuditLog"('DIVISION',"old_div"."DivisionID","string"('SMTP Profile updated - ',@DivName),"old_div"."IQXNetEmailDetailsID","new_div"."IQXNetEmailDetailsID")
END IF
END
GO
COMMENT TO PRESERVE FORMAT ON TRIGGER "pears"."Division"."DivisionAudit" IS
{CREATE TRIGGER DivisionAudit
after UPDATE OF documenttemplateid, analysis, DefPayrollCoID, IQXNetEmailDetailsID ORDER 1 ON pears.Division
REFERENCING OLD AS old_div NEW AS new_div
FOR each ROW
WHEN(EXISTS(SELECT* FROM AuditItems WHERE AreaName = 'Division' AND AuditFlag = 1))
BEGIN
DECLARE @AuditList long VARCHAR;
DECLARE @OldDescrip CHAR(250);
DECLARE @NewDescrip CHAR(250);
DECLARE @DivName CHAR(30);
SELECT string(',',list(ItemName),',') INTO @AuditList FROM AuditItems WHERE AreaName = 'Division' AND AuditFlag = 1;
SET @DivName=(SELECT name FROM division WHERE Division.DivisionID = old_div.DivisionID);
-- Override Invoice Layout
IF locate(@AuditList,',Override Invoice Layout,') > 0 AND UPDATE(documenttemplateid) THEN
SET @OldDescrip=(SELECT name FROM iqacdocumenttemplate WHERE documenttemplateid = old_div.documenttemplateid);
SET @NewDescrip=(SELECT name FROM iqacdocumenttemplate WHERE documenttemplateid = new_div.documenttemplateid);
CALL AuditLog('DIVISION',old_div.DivisionID,string('Override Invoice Layout Updated - ',@DivName),@OldDescrip,@NewDescrip)
END IF;
-- Analysis
IF locate(@AuditList,',Analysis,') > 0 AND UPDATE(analysis) THEN
CALL AuditLog('DIVISION',old_div.DivisionID,string('Analysis updated - ',@DivName),old_div.analysis,new_div.analysis)
END IF;
-- Default Payroll Identifier
IF locate(@AuditList,',Default Payroll Identifier,') > 0 AND UPDATE(DefPayrollCoID) THEN
CALL AuditLog('DIVISION',old_div.DivisionID,string('Default Payroll Identifier updated - ',@DivName),old_div.DefPayrollCoID,new_div.DefPayrollCoID)
END IF;
-- SMTP Profile
IF locate(@AuditList,',SMTP Profile,') > 0 AND UPDATE(IQXNetEmailDetailsID) THEN
CALL AuditLog('DIVISION',old_div.DivisionID,string('SMTP Profile updated - ',@DivName),old_div.IQXNetEmailDetailsID,new_div.IQXNetEmailDetailsID)
END IF;
END
}
GO