Advertisement
Guest User

Untitled

a guest
Oct 12th, 2013
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.64 KB | None | 0 0
  1. USE [Total_Database]
  2. GO
  3. /****** Object: Trigger [dbo].[Item_insupd] Script Date: 12-10-2013 18:02:50 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER TRIGGER [dbo].[Item_insupd] ON [dbo].[Item] FOR INSERT, UPDATE AS
  9. SET NOCOUNT ON
  10. DECLARE @ItemNo varchar(20), @ItemDescription varchar(40), @TaxCode varchar(1)
  11. IF NOT (EXISTS (SELECT T.ItemTypeID FROM ItemType T INNER JOIN Inserted I ON T.ItemTypeID = I.ItemTypeID))
  12. BEGIN
  13. SELECT @ItemNo = I.ItemNo, @ItemDescription = I.ItemDescription FROM Inserted I
  14. RAISERROR ('Unable to insert or update item ''%s: %s''...
  15. Item Type does not exist', 16, 1, @ItemNo, @ItemDescription)
  16. ROLLBACK TRANSACTION
  17. END
  18. DECLARE @CostingMethod smallint, @Inventory bit, @StandardCost money
  19. SELECT @ItemNo = I.ItemNo, @ItemDescription = I.ItemDescription, @StandardCost = I.StandardCost, @Inventory = T.Inventory, @CostingMethod = T.CostingMethod FROM Inserted I INNER JOIN ItemType T ON T.ItemTypeID = I.ItemTypeID
  20. IF @StandardCost IS NULL AND @Inventory = 1 AND @CostingMethod = 2
  21. BEGIN
  22. RAISERROR ('Unable to insert or update item ''%s: %s''...
  23. Standard Cost must have a value if Item Type costing method is standard', 16, 1, @ItemNo, @ItemDescription)
  24. ROLLBACK TRANSACTION
  25. END
  26. IF NOT (EXISTS (SELECT G.GLAccountID FROM GLAccnt G INNER JOIN Inserted I ON G.GLAccountID = I.SalesGLAccountID))
  27. OR ((SELECT I.COGSGLAccountID FROM Inserted I) IS NOT NULL) AND NOT (EXISTS (SELECT G.GLAccountID FROM GLAccnt G INNER JOIN Inserted I ON G.GLAccountID = I.COGSGLAccountID))
  28. OR ((SELECT I.InventoryGLAccountID FROM Inserted I) IS NOT NULL) AND NOT (EXISTS (SELECT G.GLAccountID FROM GLAccnt G INNER JOIN Inserted I ON G.GLAccountID = I.InventoryGLAccountID))
  29. BEGIN
  30. SELECT @ItemNo = I.ItemNo, @ItemDescription = I.ItemDescription FROM Inserted I
  31. RAISERROR ('Unable to insert or update item ''%s: %s''...
  32. GL Account does not exist', 16, 1, @ItemNo, @ItemDescription)
  33. ROLLBACK TRANSACTION
  34. END
  35. IF ((SELECT I.SalesSubAccount1ID FROM Inserted I) IS NOT NULL) AND NOT (EXISTS (SELECT G.SubAccountID FROM GLAcSub1 G INNER JOIN Inserted I ON G.SubAccountID = I.SalesSubAccount1ID))
  36. OR ((SELECT I.COGSSubAccount1ID FROM Inserted I) IS NOT NULL) AND NOT (EXISTS (SELECT G.SubAccountID FROM GLAcSub1 G INNER JOIN Inserted I ON G.SubAccountID = I.COGSSubAccount1ID))
  37. OR ((SELECT I.InventorySubAccount1ID FROM Inserted I) IS NOT NULL) AND NOT (EXISTS (SELECT G.SubAccountID FROM GLAcSub1 G INNER JOIN Inserted I ON G.SubAccountID = I.InventorySubAccount1ID))
  38. BEGIN
  39. SELECT @ItemNo = I.ItemNo, @ItemDescription = I.ItemDescription FROM Inserted I
  40. RAISERROR ('Unable to insert or update item ''%s: %s''...
  41. Subaccount 1 does not exist', 16, 1, @ItemNo, @ItemDescription)
  42. ROLLBACK TRANSACTION
  43. END
  44. IF ((SELECT I.SalesSubAccount2ID FROM Inserted I) IS NOT NULL) AND NOT (EXISTS (SELECT G.SubAccountID FROM GLAcSub2 G INNER JOIN Inserted I ON G.SubAccountID = I.SalesSubAccount2ID))
  45. OR ((SELECT I.COGSSubAccount2ID FROM Inserted I) IS NOT NULL) AND NOT (EXISTS (SELECT G.SubAccountID FROM GLAcSub2 G INNER JOIN Inserted I ON G.SubAccountID = I.COGSSubAccount2ID))
  46. OR ((SELECT I.InventorySubAccount2ID FROM Inserted I) IS NOT NULL) AND NOT (EXISTS (SELECT G.SubAccountID FROM GLAcSub2 G INNER JOIN Inserted I ON G.SubAccountID = I.InventorySubAccount2ID))
  47. BEGIN
  48. SELECT @ItemNo = I.ItemNo, @ItemDescription = I.ItemDescription FROM Inserted I
  49. RAISERROR ('Unable to insert or update item ''%s: %s''...
  50. Subaccount 2 does not exist', 16, 1, @ItemNo, @ItemDescription)
  51. ROLLBACK TRANSACTION
  52. END
  53. IF ((SELECT I.SalesSubAccount3ID FROM Inserted I) IS NOT NULL) AND NOT (EXISTS (SELECT G.SubAccountID FROM GLAcSub3 G INNER JOIN Inserted I ON G.SubAccountID = I.SalesSubAccount3ID))
  54. OR ((SELECT I.COGSSubAccount3ID FROM Inserted I) IS NOT NULL) AND NOT (EXISTS (SELECT G.SubAccountID FROM GLAcSub3 G INNER JOIN Inserted I ON G.SubAccountID = I.COGSSubAccount3ID))
  55. OR ((SELECT I.InventorySubAccount3ID FROM Inserted I) IS NOT NULL) AND NOT (EXISTS (SELECT G.SubAccountID FROM GLAcSub3 G INNER JOIN Inserted I ON G.SubAccountID = I.InventorySubAccount3ID))
  56. BEGIN
  57. SELECT @ItemNo = I.ItemNo, @ItemDescription = I.ItemDescription FROM Inserted I
  58. RAISERROR ('Unable to insert or update item ''%s: %s''...
  59. Subaccount 3 does not exist', 16, 1, @ItemNo, @ItemDescription)
  60. ROLLBACK TRANSACTION
  61. END
  62. IF ((SELECT SUBSTRING(I.TaxCodes,1,1) FROM Inserted I) <> '') AND NOT (EXISTS (SELECT T.TaxCode FROM Tax T INNER JOIN Inserted I ON T.TaxCode = SUBSTRING(I.TaxCodes,1,1)))
  63. BEGIN
  64. SELECT @ItemNo = I.ItemNo, @ItemDescription = I.ItemDescription, @TaxCode = SUBSTRING(I.TaxCodes,1,1) FROM Inserted I
  65. RAISERROR ('Unable to insert or update item ''%s: %s''...
  66. Tax Code ''%s'' does not exist on any taxes', 16, 1, @ItemNo, @ItemDescription, @TaxCode)
  67. ROLLBACK TRANSACTION
  68. END
  69. IF ((SELECT SUBSTRING(I.TaxCodes,2,1) FROM Inserted I) <> '') AND NOT (EXISTS (SELECT T.TaxCode FROM Tax T INNER JOIN Inserted I ON T.TaxCode = SUBSTRING(I.TaxCodes,2,1)))
  70. BEGIN
  71. SELECT @ItemNo = I.ItemNo, @ItemDescription = I.ItemDescription, @TaxCode = SUBSTRING(I.TaxCodes,2,1) FROM Inserted I
  72. RAISERROR ('Unable to insert or update item ''%s: %s''...
  73. Tax Code ''%s'' does not exist on any taxes', 16, 1, @ItemNo, @ItemDescription, @TaxCode)
  74. ROLLBACK TRANSACTION
  75. END
  76. IF ((SELECT SUBSTRING(I.TaxCodes,3,1) FROM Inserted I) <> '') AND NOT (EXISTS (SELECT T.TaxCode FROM Tax T INNER JOIN Inserted I ON T.TaxCode = SUBSTRING(I.TaxCodes,3,1)))
  77. BEGIN
  78. SELECT @ItemNo = I.ItemNo, @ItemDescription = I.ItemDescription, @TaxCode = SUBSTRING(I.TaxCodes,3,1) FROM Inserted I
  79. RAISERROR ('Unable to insert or update item ''%s: %s''...
  80. Tax Code ''%s'' does not exist on any taxes', 16, 1, @ItemNo, @ItemDescription, @TaxCode)
  81. ROLLBACK TRANSACTION
  82. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement