| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- CREATE OR ALTER TRIGGER _trg_Attention_After_Update_Insert_InvoiceKvExt
- ON ARRegisterKvExt
- AFTER UPDATE, INSERT
- AS
- BEGIN
- INSERT INTO FieldHistoryTracker (
- CompanyID,
- FieldCode,
- KeyType,
- RelatedKey,
- UDF,
- Active,
- Import,
- FieldDescription,
- FieldValueCode,
- FieldValueText,
- AppliedDate,
- AppliedByUserID,
- AppliedByUserName,
- LastModifiedDateTime,
- LastModifiedByName,
- LastModifiedByID
- )
- SELECT
- c.CompanyID,
- cd.AttributeID,
- 'Invoice',
- c.RefNbr ,
- 1, -- UDF
- 1, -- Active
- 0, -- Import
- ca.Description,
- cd.ValueID, --Was not attributeID
- cd.Description,
- c.LastModifiedDateTime,
- c.LastModifiedByID,
- u.FullName,
- c.LastModifiedDateTime,
- u.FullName,
- c.LastModifiedByID
- FROM INSERTED i
- LEFT JOIN DELETED d
- ON d.CompanyID = i.CompanyID
- AND d.RecordID = i.RecordID
- AND d.FieldName = i.FieldName
- JOIN ARRegisterKvExt cke
- ON i.CompanyID = cke.CompanyID
- AND i.RecordID = cke.RecordID
- AND i.FieldName = cke.FieldName
- join ARRegister c
- ON c.CompanyID = cke.CompanyID
- AND c.NoteID = cke.RecordID
- JOIN CSAttributeDetail cd
- ON cd.CompanyID = cke.CompanyID
- AND cke.ValueString = cd.ValueID
- JOIN CSAttribute ca
- ON ca.CompanyID = cd.CompanyID
- AND ca.AttributeID = cd.AttributeID
- JOIN Users u
- ON c.CompanyID = u.CompanyID
- AND u.PKID = c.LastModifiedByID
- WHERE cd.AttributeID IN ('DISP')
- AND (
- -- 1) If there's no 'old' row (d.FieldName IS NULL), it's a new insert
- d.FieldName IS NULL
- OR
- -- 2) If there's an old row, check if something truly changed
- REPLACE(d.FieldName,'Attribute','') <> REPLACE(i.FieldName,'Attribute','')
- OR d.ValueString <> i.ValueString
- );
- END;
|