CREATE TABLE [dbo].[DeliveryChallan]( [VoucherNo] [bigint] IDENTITY(1,1) NOT NULL, [DeliveryFromCustomerID] [bigint] NOT NULL, [DeliveryToCustomerID] [bigint] NOT NULL, [DeliveryDate] [smalldatetime] NOT NULL, [SalesID] [bigint] NOT NULL, [StartBarNumber] [money] NOT NULL, [EndBarNumber] [money] NOT NULL, [LastUpdateTime] [smalldatetime] NOT NULL, [EntryUsername] [nvarchar](200) NOT NULL, CONSTRAINT [PK_DeliveryChallan] PRIMARY KEY CLUSTERED ( [VoucherNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE [dbo].[DeliveryChallanReport]( [VoucherNo] [bigint] NOT NULL, [DeliveryFromCustomer] [nvarchar](2000) NULL, [DeliveryToCustomer] [nvarchar](2000) NULL, [ProductName] [nvarchar](2000) NULL, [Quantity] [money] NULL, [Pieces] [money] NULL, [SerialNoFrom] [nvarchar](2000) NULL, [SerialNoTo] [nvarchar](2000) NULL, [Amount] [money] NULL, [DeliveryDate] [smalldatetime] NULL, CONSTRAINT [PK_DeliveryChallanReport] PRIMARY KEY CLUSTERED ( [VoucherNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE [dbo].[MetalSalesUnFixEntry]( [SalesID] [bigint] IDENTITY(1,1) NOT NULL, [CustomerID] [bigint] NULL, [SalesDate] [smalldatetime] NULL, [PaymentType] [nvarchar](max) NULL, [Pieces] [money] NULL, [Quantity] [money] NULL, [Rate] [money] NULL, [Value] [money] NULL, [VAT] [money] NULL, [Total] [money] NULL, [ProductID] [bigint] NULL, [CustomerName] [nvarchar](max) NULL, [Address] [nvarchar](max) NULL, [Remarks] [nvarchar](max) NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, [Extra1] [nvarchar](max) NULL, [Extra2] [nvarchar](max) NULL, [Extra3] [nvarchar](max) NULL, [Extra4] [nvarchar](max) NULL, [ProductStatusID] [bigint] NULL, [BranchID] [bigint] NULL, [LedgerVoucherNo] [bigint] NULL, [TransactionThrough] [nvarchar](max) NULL, [InvoiceNo] [nvarchar](50) NULL, [isUnFix] [bit] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [ModeOfDelivery] [nvarchar](1000) NULL, [Discount] [money] NULL, [ReverseChargeYN] [nvarchar](1000) NULL, [BLOCKAmountLedgerVoucherNo] [bigint] NULL, [OwnBranchTransferPurchaseID] [bigint] NULL, [DeliveryCharges] [money] NULL, [RoundOff] [money] NULL, [DeliveryCustomerID] [bigint] NULL, [TCS] [money] NULL, [SuppliersRef] [nvarchar](max) NULL, [OtherRef] [nvarchar](max) NULL, [Purity] [nvarchar](max) NULL, [trdId] [nvarchar](max) NULL, [MetaSalesSalesID] [bigint] NULL, CONSTRAINT [PK_MetalSalesUnFixEntry] PRIMARY KEY CLUSTERED ( [SalesID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] WITH CHECK ADD CONSTRAINT [FK_MetalSalesUnFixEntry_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] CHECK CONSTRAINT [FK_MetalSalesUnFixEntry_BranchMaster] GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] WITH CHECK ADD CONSTRAINT [FK_MetalSalesUnFixEntry_CustomerMaster] FOREIGN KEY([CustomerID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] CHECK CONSTRAINT [FK_MetalSalesUnFixEntry_CustomerMaster] GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] WITH CHECK ADD CONSTRAINT [FK_MetalSalesUnFixEntry_CustomerMaster1] FOREIGN KEY([DeliveryCustomerID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] CHECK CONSTRAINT [FK_MetalSalesUnFixEntry_CustomerMaster1] GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] WITH CHECK ADD CONSTRAINT [FK_MetalSalesUnFixEntry_Ledger] FOREIGN KEY([LedgerVoucherNo]) REFERENCES [dbo].[Ledger] ([VoucherNo]) GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] CHECK CONSTRAINT [FK_MetalSalesUnFixEntry_Ledger] GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] WITH CHECK ADD CONSTRAINT [FK_MetalSalesUnFixEntry_ProductMaster] FOREIGN KEY([ProductID]) REFERENCES [dbo].[ProductMaster] ([ProductID]) GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] CHECK CONSTRAINT [FK_MetalSalesUnFixEntry_ProductMaster] GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] WITH CHECK ADD CONSTRAINT [FK_MetalSalesUnFixEntry_ProductStatus] FOREIGN KEY([ProductStatusID]) REFERENCES [dbo].[ProductStatus] ([ProductStatusID]) GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] CHECK CONSTRAINT [FK_MetalSalesUnFixEntry_ProductStatus] GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] WITH CHECK ADD CONSTRAINT [FK_MetalSalesUnFixEntry_PurchaseMaster] FOREIGN KEY([OwnBranchTransferPurchaseID]) REFERENCES [dbo].[PurchaseMaster] ([PurchaseID]) GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] CHECK CONSTRAINT [FK_MetalSalesUnFixEntry_PurchaseMaster] GO alter table BranchMaster add AddressEInvoice nvarchar(MAX) GO alter table PurchaseMaster add TCS money GO alter table DeliveryChallan alter column StartBarNumber nvarchar(2000) GO alter table DeliveryChallan alter column EndBarNumber nvarchar(2000) GO alter table MetalSalesUnFixEntry add DeliveryChallanVoucherNo bigint GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] WITH CHECK ADD CONSTRAINT [FK_MetalSalesUnFixEntry_DeliveryChallan] FOREIGN KEY([DeliveryChallanVoucherNo]) REFERENCES [dbo].[DeliveryChallan] ([VoucherNo]) GO ALTER TABLE [dbo].[MetalSalesUnFixEntry] CHECK CONSTRAINT [FK_MetalSalesUnFixEntry_DeliveryChallan] GO alter table MetalSales add TCS money GO alter table MetalSales add trdId nvarchar(max) GO CREATE TABLE [dbo].[BranchOutstandingReport]( [BranchName] [nvarchar](max) NULL, [Balance] [money] NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO CREATE TABLE [dbo].[SettingsScripProductMapping]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [isScripProductMappingCompulsory] [bit] NULL, [LastUpdateDateTime] [smalldatetime] NULL, [EntryUsername] [nvarchar](max) NULL, CONSTRAINT [PK_SettingsScripProductMapping] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO CREATE TABLE [dbo].[InvoiceMessageMaster]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [InvoiceMessage] [nvarchar](max) NULL, CONSTRAINT [PK_InvoiceMessageMaster] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO CREATE TABLE [dbo].[ValueDate]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [Monday] [nvarchar](500) NOT NULL, [Tuesday] [nvarchar](500) NOT NULL, [Wednesday] [nvarchar](500) NOT NULL, [Thursday] [nvarchar](500) NOT NULL, [Friday] [nvarchar](500) NOT NULL, [Saturday] [nvarchar](500) NOT NULL, [Sunday] [nvarchar](500) NOT NULL, CONSTRAINT [PK_ValueDate] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO GO alter table CustomerMaster add isTCS nvarchar(500) GO CREATE TABLE [dbo].[TaxMaster]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [TaxName] [nvarchar](2000) NULL, [TaxPercentage] [money] NULL, [StartDate] [datetime] NULL, [EndDate] [datetime] NULL, [LastModifiedTime] [datetime] NULL, [EntryUserName] [nvarchar](2000) NULL, CONSTRAINT [PK_TaxMaster] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO alter table CustomerMaster add ExtendedValueDays money GO CREATE TABLE [dbo].[SMSMessageMaster]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [ClientName] [nvarchar](max) NULL, [Amount] [money] NULL, [Mobile] [nvarchar](2000) NULL, [SMSDate] [datetime] NULL, [Company] [nvarchar](max) NULL, [Message] [nvarchar](max) NULL, CONSTRAINT [PK_SMSMessageMaster] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO CREATE TABLE [dbo].[AccountGroup]( [AccountGroupID] [int] IDENTITY(1,1) NOT NULL, [AccountGroupName] [nchar](200) NULL, [AccountHeadID] [int] NULL, [EntryUserName] [nchar](200) NULL, [LastUpdateTime] [smalldatetime] NULL, CONSTRAINT [PK_AccountGroup] PRIMARY KEY CLUSTERED ( [AccountGroupID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE [dbo].[AccountHead]( [AccountHeadID] [int] IDENTITY(1,1) NOT NULL, [AccountHeadName] [nchar](100) NULL, CONSTRAINT [PK_AccountHead] PRIMARY KEY CLUSTERED ( [AccountHeadID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (1, N'Branch/Division') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (2, N'Capital Accounts') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (3, N'Loans') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (4, N'Suspense Account') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (5, N'Current Liabilities') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (6, N'Current Assets') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (7, N'Fixed Assets') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (8, N'Investments') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (9, N'Sales Accounts') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (10, N'Indirect Expenses') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (11, N'Indirect Income') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (12, N'Misc. Expenses') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (13, N'Purchase Accounts') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (14, N'Direct Income') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (15, N'Direct Expenses') GO SET IDENTITY_INSERT [dbo].[AccountHead] OFF GO GO Alter Table PurchaseMaster Add TDSCreditVoucherNo bigint Go Alter Table PurchaseMaster Add TDSDebitVoucherNo bigint Go Alter Table PurchaseMaster Add TaxType nvarchar(max) Go Alter Table PurchaseMaster Add TotalAmount money Go Alter Table MetalSales Add TDSCreditVoucherNo bigint Go Alter Table MetalSales Add TDSDebitVoucherNo bigint Go Alter Table MetalSales Add TaxType nvarchar(max) Go Alter Table MetalSales Add TDSAmount money Go Alter Table Transactions Add BookVoucherNo bigInt GO Alter Table MetalSales Add SaleBookVoucherNo bigInt Go Alter Table MetalSales Add blockLedgerCreditVoucherNo bigInt Go Alter Table MetalSales Add TCSCreditVoucherNo bigInt Go Alter Table MetalSales Add TCSDebitVoucherNo bigInt Go Alter Table MetalSales Add SGSTVoucherNo bigInt Go Alter Table MetalSales Add CGSTVoucherNo bigInt Go Alter Table MetalSales Add IGSTVoucherNo bigInt Go Alter Table MetalSales Add DeliveryChargesVoucherNo bigInt Go Alter Table MetalSales Add RoundOffVoucherNo bigInt Go Alter Table PurchaseMaster Add SGSTVoucherNo int Go Alter Table PurchaseMaster Add CGSTVoucherNo int Go Alter Table PurchaseMaster Add IGSTVoucherNo int Go Alter Table PurchaseMaster Add PurcherBookVoucherNo int Go Alter Table PurchaseMaster Add TCSCreditVoucherNo int Go Alter Table PurchaseMaster Add TCSDebitVoucherNo int Go Alter Table MetalSales Add SaleBookVoucherNo bigInt Go Alter Table MetalSales Add blockLedgerCreditVoucherNo bigInt Go Alter Table MetalSales Add TCSCreditVoucherNo bigInt Go Alter Table MetalSales Add TCSDebitVoucherNo bigInt Go Alter Table MetalSales Add SGSTVoucherNo bigInt Go Alter Table MetalSales Add CGSTVoucherNo bigInt Go Alter Table MetalSales Add IGSTVoucherNo bigInt Go Alter Table MetalSales Add DeliveryChargesVoucherNo bigInt Go Alter Table MetalSales Add RoundOffVoucherNo bigInt Go Alter Table Transactions Add BookVoucherNo bigInt Go ALTER TABLE Transactions DROP CONSTRAINT FK_Transactions_BankMaster Go Alter Table DebitCreditNote Add CreditDebitVoucherNo bigint Go Alter Table PurchaseDebitCreditNote Add CreditDebitVoucherNo bigint Go Alter Table Ledger Add VoucherID bigint Go CREATE SEQUENCE VoucherID_seq START WITH 1 INCREMENT BY 1; Go Alter Table MetalSales Add VoucherID bigint Go Alter Table PurchaseMaster Add VoucherID bigint Go Alter Table Transactions Add VoucherID bigint Go Alter Table DebitCreditNote Add VoucherID bigint Go Alter Table PurchaseDebitCreditNote Add VoucherID bigint Go Alter Table ProductMaster Add VoucherID bigint Go Alter Table ProductStatus Add VoucherID bigint Go CREATE TABLE [dbo].[JournalVoucher]( [JournalVoucherID] [int] IDENTITY(1,1) NOT NULL, [JournalVoucherNo] [bigint] NULL, [JournalVoucherDate] [smalldatetime] NULL, [CustomerID] [bigint] NULL, [Credit] [money] NULL, [Debit] [money] NULL, [Remarks] [nvarchar](max) NULL, [CustomerVoucherNo] [bigint] NULL, [VoucherID] [bigint] NULL, [Narration] [nvarchar](max) NULL, [EntryUserName] [nvarchar](50) NULL, [LastUpdateTime] [smalldatetime] NULL, CONSTRAINT [PK_JournalVoucher] PRIMARY KEY CLUSTERED ( [JournalVoucherID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[JournalVoucher] WITH CHECK ADD CONSTRAINT [FK_JournalVoucher_CustomerMaster] FOREIGN KEY([CustomerID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[JournalVoucher] CHECK CONSTRAINT [FK_JournalVoucher_CustomerMaster] GO CREATE TABLE [dbo].[Contra]( [ContraID] [int] IDENTITY(1,1) NOT NULL, [ContraDate] [smalldatetime] NULL, [BankID1] [bigint] NULL, [BankID2] [bigint] NULL, [Amount] [money] NULL, [Narration] [nvarchar](max) NULL, [Bank1VoucherNo] [bigint] NULL, [Bank2VoucherNo] [bigint] NULL, [VoucherID] [bigint] NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, CONSTRAINT [PK_Contra] PRIMARY KEY CLUSTERED ( [ContraID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[Contra] WITH CHECK ADD CONSTRAINT [FK_Contra_CustomerMaster] FOREIGN KEY([BankID1]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[Contra] CHECK CONSTRAINT [FK_Contra_CustomerMaster] GO ALTER TABLE [dbo].[Contra] WITH CHECK ADD CONSTRAINT [FK_Contra_CustomerMaster1] FOREIGN KEY([BankID2]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[Contra] CHECK CONSTRAINT [FK_Contra_CustomerMaster1] GO Alter Table Contra Add ContaNo bigint Go Alter Table MetalSales Add SaleLedgerID bigint Go Alter Table PurchaseMaster Add PurchaseLedgerID bigint Go ALTER TABLE AccountGroup ALTER COLUMN AccountGroupName nvarchar(max) Go ALTER TABLE AccountHead ALTER COLUMN AccountHeadName nvarchar(max) Go Alter Table ProductMaster Add ProductStatusID bigint Go Alter Table ProductMaster Add Rate money Go SET IDENTITY_INSERT [dbo].[CustomerMaster] OFF GO create PROC GetDynamicSequenceforInvoiceNo(@TableName NVARCHAR(50)) AS BEGIN DECLARE @SQLSelectQuery NVARCHAR(MAX)='' SET @SQLSelectQuery = 'SELECT NEXT VALUE FOR ' + @TableName +' AS VoucherID ' IF ( EXISTS( SELECT * FROM sys.sequences WHERE name = @TableName)) BEGIN exec(@SQLSelectQuery) END else BEGIN exec('CREATE SEQUENCE '+ @TableName+' START WITH 1 INCREMENT BY 1') exec(@SQLSelectQuery) END END GO SET IDENTITY_INSERT [dbo].[AccountHead] ON GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (1, N'Branch/Division') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (2, N'Capital Accounts') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (3, N'Loans') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (4, N'Suspense Account') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (5, N'Current Liabilities') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (6, N'Current Assets') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (7, N'Fixed Assets') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (8, N'Investments') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (9, N'Sales Accounts') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (10, N'Indirect Expenses') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (11, N'Indirect Income') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (12, N'Misc. Expenses') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (13, N'Purchase Accounts') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (14, N'Direct Income') GO INSERT [dbo].[AccountHead] ([AccountHeadID], [AccountHeadName]) VALUES (15, N'Direct Expenses') GO SET IDENTITY_INSERT [dbo].[AccountHead] OFF GO Alter Table ProductMaster Add InvoicePrefix nvarchar(max) GO Alter Table AccountGroup Add TallyGUID nvarchar(Max) Go Alter Table AccountGroup Add IsTallySync nvarchar(10) Go Alter Table AccountGroup Add TallySyncDate datetime Go Alter Table AccountHead Add TallyGUID nvarchar(Max) Go Alter Table AccountHead Add IsTallySync nvarchar(10) Go Alter Table AccountHead Add TallySyncDate datetime Go Alter Table Contra Add TallyGUID nvarchar(Max) Go Alter Table Contra Add IsTallySync nvarchar(10) Go Alter Table Contra Add TallySyncDate datetime Go Alter Table CustomerMaster Add AccountGroupID bigint Go Alter Table CustomerMaster Add TallyGUID nvarchar(Max) Go Alter Table CustomerMaster Add IsTallySync nvarchar(10) Go Alter Table CustomerMaster Add TallySyncDate datetime Go Alter Table DebitCreditNote Add TallyGUID nvarchar(Max) Go Alter Table DebitCreditNote Add IsTallySync nvarchar(10) Go Alter Table DebitCreditNote Add TallySyncDate datetime Go Alter Table JournalVoucher Add TallyGUID nvarchar(Max) Go Alter Table JournalVoucher Add IsTallySync nvarchar(10) Go Alter Table JournalVoucher Add TallySyncDate datetime Go Alter Table MetalSales Add TallyGUID nvarchar(Max) Go Alter Table MetalSales Add IsTallySync nvarchar(10) Go Alter Table MetalSales Add TallySyncDate datetime Go Alter Table ProductMaster Add TallyGUID nvarchar(Max) Go Alter Table ProductMaster Add IsTallySync nvarchar(10) Go Alter Table ProductMaster Add TallySyncDate datetime Go Alter Table PurchaseDebitCreditNote Add TallyGUID nvarchar(Max) Go Alter Table PurchaseDebitCreditNote Add IsTallySync nvarchar(10) Go Alter Table PurchaseDebitCreditNote Add TallySyncDate datetime Go Alter Table PurchaseMaster Add TallyGUID nvarchar(Max) Go Alter Table PurchaseMaster Add IsTallySync nvarchar(10) Go Alter Table PurchaseMaster Add TallySyncDate datetime Go Alter Table StateMaster Add TallyGUID nvarchar(Max) Go Alter Table StateMaster Add IsTallySync nvarchar(10) Go Alter Table StateMaster Add TallySyncDate datetime Go Alter Table AccountGroup Add ParentAccountGroupID int Go Alter Table AccountGroup Add NatureOfGroup nvarchar(100) Go ALTER TABLE [dbo].[AccountGroup] WITH CHECK ADD CONSTRAINT [FK_AccountGroup_AccountGroup1] FOREIGN KEY([ParentAccountGroupID]) REFERENCES [dbo].[AccountGroup] ([AccountGroupID]) GO CREATE TABLE [dbo].[TallySync]( [TallySyncID] [int] IDENTITY(1,1) NOT NULL, [TallyXML] [nvarchar](max) NULL, [TallyGUID] [nvarchar](max) NULL, [IsTallySync] [bit] NULL, [TallySyncDate] [datetime] NULL, [TableName] [nvarchar](100) NULL, [TableID] [int] NULL, [EntryUserName] [nvarchar](100) NULL, [LastUpdateTime] [datetime] NULL, [EnteryDate] [date] NULL, [ComputerIDAddress] [nvarchar](100) NULL, CONSTRAINT [PK_TallySync] PRIMARY KEY CLUSTERED ( [TallySyncID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO CREATE TRIGGER SetIPAddress ON TallySync AFTER INSERT,UPDATE AS DECLARE @ComputerIDAddress VARCHAR(128),@ID int ; SELECT @ComputerIDAddress= convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')) BEGIN Select @ID=i.TallySyncID From inserted as i; SET NOCOUNT ON; -- Insert statements for trigger here Update TallySync Set ComputerIDAddress=@ComputerIDAddress Where TallySyncID=@ID; END GO Alter Table TallySync Add Response nvarchar(Max) GO Alter Table TallySync Add ISSuccess bit GO Alter Table Transactions Add TallyGUID nvarchar(Max) Go Alter Table Transactions Add IsTallySync nvarchar(10) Go Alter Table Transactions Add TallySyncDate datetime GO Alter Table TallySync Add BranchID bigint Go ALTER TABLE [dbo].[TallySync] WITH CHECK ADD CONSTRAINT [FK_TallySync_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO Go Alter Table Ledger Add BranchID bigint Go ALTER TABLE [dbo].[Ledger] WITH CHECK ADD CONSTRAINT [FK_Ledger_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO Alter Table Transactions Add BranchID bigint Go ALTER TABLE [dbo].[Transactions] WITH CHECK ADD CONSTRAINT [FK_Transactions_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO Alter Table Contra Add BranchID bigint Go ALTER TABLE [dbo].[Contra] WITH CHECK ADD CONSTRAINT [FK_Contra_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO Alter Table JournalVoucher Add BranchID bigint Go ALTER TABLE [dbo].[JournalVoucher] WITH CHECK ADD CONSTRAINT [FK_JournalVoucher_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO Alter Table AccountGroup Add GrandParentAccountGroupID bigint Go CREATE TABLE [dbo].[ledgerConfiguration]( [ledgerConfigurationID] [bigint] IDENTITY(1,1) NOT NULL, [BranchID] [bigint] NULL, [VoucherType] [nvarchar](100) NULL, [AccountName] [nvarchar](100) NULL, [AccountID] [bigint] NULL, [EntryUserName] [nvarchar](100) NULL, [LastUpdateTime] [datetime] NULL, CONSTRAINT [PK_tblledgerConfiguration] PRIMARY KEY CLUSTERED ( [ledgerConfigurationID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[ledgerConfiguration] WITH CHECK ADD CONSTRAINT [FK_ledgerConfiguration_CustomerMaster] FOREIGN KEY([AccountID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[ledgerConfiguration] CHECK CONSTRAINT [FK_ledgerConfiguration_CustomerMaster] GO GO Alter Table DebitCreditNote Add CGSTVoucherNo bigint Go Alter Table DebitCreditNote Add SGSTVoucherNo bigint Go Alter Table DebitCreditNote Add IGSTVoucherNo bigint GO Alter Table BranchMaster Add ParentBranchID bigint GO CREATE TABLE [dbo].[SoftwareSetting]( [SoftwareSettingID] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](100) NULL, [BranchWise] [bit] NULL, CONSTRAINT [PK_SoftwareSetting] PRIMARY KEY CLUSTERED ( [SoftwareSettingID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO Create PROC [dbo].[SetDynamicSequenceforInvoiceNo](@TableName NVARCHAR(50),@Startno int) AS BEGIN DECLARE @SQLSelectQuery NVARCHAR(MAX)='' SET @SQLSelectQuery = 'ALTER SEQUENCE ' + @TableName +' INCREMENT BY '+@Startno DECLARE @SQLSelectQuery1 NVARCHAR(MAX)='' SET @SQLSelectQuery1 = 'ALTER SEQUENCE ' + @TableName +' INCREMENT BY 1' IF ( EXISTS( SELECT * FROM sys.sequences WHERE name = @TableName)) BEGIN exec(@SQLSelectQuery) exec(@SQLSelectQuery1) END else BEGIN exec('CREATE SEQUENCE '+ @TableName+' START WITH 1 INCREMENT BY 1') exec(@SQLSelectQuery) exec(@SQLSelectQuery1) END END GO alter PROC [dbo].[SetDynamicSequenceforInvoiceNo](@TableName NVARCHAR(50),@Startno int) AS BEGIN DECLARE @SQLSelectQuery NVARCHAR(MAX)='' SET @SQLSelectQuery = 'ALTER SEQUENCE ' + @TableName +' INCREMENT BY '+CONVERT(nvarchar, @Startno) DECLARE @SQLSelectQuery1 NVARCHAR(MAX)='' SET @SQLSelectQuery1 = 'ALTER SEQUENCE ' + @TableName +' INCREMENT BY 1' IF ( EXISTS( SELECT * FROM sys.sequences WHERE name = @TableName)) BEGIN exec(@SQLSelectQuery) exec(@SQLSelectQuery1) END else BEGIN exec('CREATE SEQUENCE '+ @TableName+' START WITH 1 INCREMENT BY 1') exec(@SQLSelectQuery) exec(@SQLSelectQuery1) END END GO alter PROC [dbo].[SetDynamicSequenceforInvoiceNo](@TableName NVARCHAR(50),@Startno int) AS BEGIN DECLARE @SQLSelectQuery NVARCHAR(MAX)='' SET @SQLSelectQuery = 'ALTER SEQUENCE ' + @TableName +' INCREMENT BY '+CONVERT(nvarchar, @Startno) DECLARE @SQLSelectQuery1 NVARCHAR(MAX)='' SET @SQLSelectQuery1 = 'ALTER SEQUENCE ' + @TableName +' INCREMENT BY 1' DECLARE @SQLSelectQuery2 NVARCHAR(MAX)='' set @SQLSelectQuery2 ='SELECT NEXT VALUE FOR ' + @TableName +' AS VoucherID ' IF ( EXISTS( SELECT * FROM sys.sequences WHERE name = @TableName)) BEGIN exec(@SQLSelectQuery) exec(@SQLSelectQuery2) exec(@SQLSelectQuery1) END else BEGIN exec('CREATE SEQUENCE '+ @TableName+' START WITH 1 INCREMENT BY 1') exec(@SQLSelectQuery) exec(@SQLSelectQuery2) exec(@SQLSelectQuery1) END END GO alter PROC [dbo].[SetDynamicSequenceforInvoiceNo](@TableName NVARCHAR(50),@Startno int) AS BEGIN DECLARE @SQLSelectQuery NVARCHAR(MAX)='' SET @SQLSelectQuery = 'ALTER SEQUENCE ' + @TableName +' INCREMENT BY '+CONVERT(nvarchar, @Startno) IF ( EXISTS( SELECT * FROM sys.sequences WHERE name = @TableName)) BEGIN exec(@SQLSelectQuery) END else BEGIN exec('CREATE SEQUENCE '+ @TableName+' START WITH 1 INCREMENT BY 1') exec(@SQLSelectQuery) END END GO Create PROC [dbo].[SetDefaultDynamicSequenceforInvoiceNo](@TableName NVARCHAR(50)) AS BEGIN DECLARE @SQLSelectQuery NVARCHAR(MAX)='' SET @SQLSelectQuery = 'ALTER SEQUENCE ' + @TableName +' INCREMENT BY 1' IF ( EXISTS( SELECT * FROM sys.sequences WHERE name = @TableName)) BEGIN exec(@SQLSelectQuery) END else BEGIN exec('CREATE SEQUENCE '+ @TableName+' START WITH 1 INCREMENT BY 1') exec(@SQLSelectQuery) END END GO CREATE TABLE [dbo].[DeliveryOrder]( [VoucherNo] [bigint] IDENTITY(1,1) NOT NULL, [DeliveryFromCustomerID] [bigint] NOT NULL, [DeliveryToCustomerID] [bigint] NOT NULL, [DeliveryDate] [smalldatetime] NOT NULL, [SalesID] [bigint] NOT NULL, [StartBarNumber] [nvarchar](2000) NULL, [EndBarNumber] [nvarchar](2000) NULL, [LastUpdateTime] [smalldatetime] NOT NULL, [EntryUsername] [nvarchar](200) NOT NULL, CONSTRAINT [PK_DeliveryOrder] PRIMARY KEY CLUSTERED ( [VoucherNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE [dbo].[DeliveryOrderReport]( [VoucherNo] [bigint] NOT NULL, [DeliveryFromCustomer] [nvarchar](2000) NULL, [DeliveryToCustomer] [nvarchar](2000) NULL, [ProductName] [nvarchar](2000) NULL, [Quantity] [money] NULL, [Pieces] [money] NULL, [SerialNoFrom] [nvarchar](2000) NULL, [SerialNoTo] [nvarchar](2000) NULL, [Amount] [money] NULL, [DeliveryDate] [smalldatetime] NULL, CONSTRAINT [PK_DeliveryOrderReport] PRIMARY KEY CLUSTERED ( [VoucherNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO Alter Table DeliveryChallan Add InvoiceNo nvarchar(2000) Go Alter Table DeliveryOrder Add InvoiceNo nvarchar(2000) Go Alter Table ProductMaster Add TradeRate bigint Go Alter Table MetalSales Add TradeRate bigint GO Alter Table SoftwareSetting Add RowFont nvarchar(2000) Go Alter Table SoftwareSetting Add FocusedRowFont nvarchar(2000) GO Alter Table BranchMaster Add InvoiceCompanyName varchar(5000) GO CREATE TABLE [dbo].[VoucherSetting]( [VoucherSettingID] [int] IDENTITY(1,1) NOT NULL, [BranchID] [int] NULL, [VoucherName] [varchar](2000) NULL, [Type1] [varchar](2000) NULL, [Type2] [varchar](2000) NULL, [Type3] [varchar](2000) NULL, [Type4] [varchar](2000) NULL, [EntryUsername] [varchar](2000) NULL, [LastUpdateTime] [datetime] NULL, CONSTRAINT [PK_VoucherSetting] PRIMARY KEY CLUSTERED ( [VoucherSettingID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO Alter Table MetalSales Add DeliveryChargesIncludingTotalAmount Money GO Alter Table PurchaseMaster add TDS Money GO CREATE TABLE [dbo].[tblPincode]( [PincodeID] [int] IDENTITY(1,1) NOT NULL, [officename] [nvarchar](2000) NULL, [pincode] [int] NULL, [officeType] [nvarchar](2000) NULL, [Deliverystatus] [nvarchar](2000) NULL, [divisionname] [nvarchar](2000) NULL, [regionname] [nvarchar](2000) NULL, [circlename] [nvarchar](2000) NULL, [Taluk] [nvarchar](2000) NULL, [Districtname] [nvarchar](2000) NULL, [statename] [nvarchar](2000) NULL, CONSTRAINT [PK_tblPincode] PRIMARY KEY CLUSTERED ( [PincodeID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO Alter Table PurchaseMaster Add BarNo varchar(2000) Go Alter Table DeliveryOrderReport add InvoiceNo varchar(2000) Go Alter Table DeliveryChallanReport add InvoiceNo varchar(2000) GO Alter Table ProductMaster Add QtyDigitIn int GO CREATE PROCEDURE GetClientBalance @Date Datetime, @AccountGroup int AS BEGIN if @AccountGroup<=0 SELECT SUM(Ledger.Credit) - SUM(Ledger.Debit) AS Balance, CustomerMaster.NickName, CustomerMaster.CustomerName, CustomerMaster.CustomerID, CustomerMaster.SMSNumber as Mobile FROM Ledger INNER JOIN CustomerMaster ON Ledger.CustomerID = CustomerMaster.CustomerID WHERE (Ledger.Date < @Date + 1) GROUP BY Ledger.CustomerID, CustomerMaster.NickName, CustomerMaster.CustomerName, CustomerMaster.CustomerID, CustomerMaster.SMSNumber HAVING (SUM(Ledger.Debit) - SUM(Ledger.Credit) <> 0) AND (NOT (SUM(Ledger.Debit) - SUM(Ledger.Credit) IS NULL)) else SELECT SUM(Ledger.Credit) - SUM(Ledger.Debit) AS Balance, CustomerMaster.NickName, CustomerMaster.CustomerName, CustomerMaster.CustomerID, CustomerMaster.SMSNumber as Mobile FROM Ledger INNER JOIN CustomerMaster ON Ledger.CustomerID = CustomerMaster.CustomerID WHERE (Ledger.Date < @Date + 1) and Ledger.CustomerID in (Select AccountGroupID From AccountGroup Where AccountGroupID=@AccountGroup or GrandParentAccountGroupID=@AccountGroup) GROUP BY Ledger.CustomerID, CustomerMaster.NickName, CustomerMaster.CustomerName, CustomerMaster.CustomerID, CustomerMaster.SMSNumber HAVING (SUM(Ledger.Debit) - SUM(Ledger.Credit) <> 0) AND (NOT (SUM(Ledger.Debit) - SUM(Ledger.Credit) IS NULL)) END GO alter PROCEDURE GetClientBalance @Date Datetime, @AccountGroup int AS BEGIN if @AccountGroup<=0 SELECT SUM(Ledger.Credit) - SUM(Ledger.Debit) AS Balance, CustomerMaster.NickName, CustomerMaster.CustomerName, CustomerMaster.CustomerID, CustomerMaster.SMSNumber as Mobile FROM Ledger INNER JOIN CustomerMaster ON Ledger.CustomerID = CustomerMaster.CustomerID WHERE (Ledger.Date < @Date + 1) GROUP BY Ledger.CustomerID, CustomerMaster.NickName, CustomerMaster.CustomerName, CustomerMaster.CustomerID, CustomerMaster.SMSNumber HAVING (SUM(Ledger.Debit) - SUM(Ledger.Credit) <> 0) AND (NOT (SUM(Ledger.Debit) - SUM(Ledger.Credit) IS NULL)) else SELECT SUM(Ledger.Credit) - SUM(Ledger.Debit) AS Balance, CustomerMaster.NickName, CustomerMaster.CustomerName, CustomerMaster.CustomerID, CustomerMaster.SMSNumber as Mobile FROM Ledger INNER JOIN CustomerMaster ON Ledger.CustomerID = CustomerMaster.CustomerID WHERE (Ledger.Date < @Date + 1) and Ledger.CustomerID in (Select CustomerID From CustomerMaster Where AccountGroupID in ( Select AccountGroupID From AccountGroup Where AccountGroupID=@AccountGroup or GrandParentAccountGroupID=@AccountGroup or ParentAccountGroupID =@AccountGroup)) GROUP BY Ledger.CustomerID, CustomerMaster.NickName, CustomerMaster.CustomerName, CustomerMaster.CustomerID, CustomerMaster.SMSNumber HAVING (SUM(Ledger.Debit) - SUM(Ledger.Credit) <> 0) AND (NOT (SUM(Ledger.Debit) - SUM(Ledger.Credit) IS NULL)) END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE SPGetDataForReport @PurchaseID bigint AS BEGIN SELECT CustomerMaster.CustomerName AS SupplierName, CustomerMaster.NickName AS SupplierNickName, CustomerMaster_1.NickName AS PurchaseLedgerNickName, CustomerMaster_1.CustomerName AS PurchaseLedgerName, PurchaseMaster.PurchaseID AS Expr1, PurchaseMaster.SupplierID, PurchaseMaster.PurchaseDate, PurchaseMaster.NoOfPieces, PurchaseMaster.Quantity, PurchaseMaster.Rate, PurchaseMaster.Value, PurchaseMaster.VATAmount, PurchaseMaster.InvoiceNo, PurchaseMaster.CreditDebit, PurchaseMaster.ProductID, PurchaseMaster.BranchID, PurchaseMaster.EntryUsername, PurchaseMaster.LastUpdateTime, PurchaseMaster.Extra1, PurchaseMaster.Extra2, PurchaseMaster.Extra3, PurchaseMaster.Extra4, PurchaseMaster.SupplierName AS Expr2, PurchaseMaster.ConnectedPurchaseID, PurchaseMaster.LedgerVoucherNo, PurchaseMaster.ProductStatusID, PurchaseMaster.CGST, PurchaseMaster.SGST, PurchaseMaster.IGST, PurchaseMaster.TCS, PurchaseMaster.TDS, PurchaseMaster.TDSCreditVoucherNo, PurchaseMaster.TDSDebitVoucherNo, PurchaseMaster.TaxType, PurchaseMaster.TotalAmount, PurchaseMaster.SGSTVoucherNo, PurchaseMaster.CGSTVoucherNo, PurchaseMaster.IGSTVoucherNo, PurchaseMaster.PurcherBookVoucherNo, PurchaseMaster.TCSCreditVoucherNo, PurchaseMaster.TCSDebitVoucherNo, PurchaseMaster.VoucherID, PurchaseMaster.TallyGUID, PurchaseMaster.PurchaseLedgerID, PurchaseMaster.IsTallySync, PurchaseMaster.TallySyncDate, ProductMaster.ProductName, ProductMaster.Description FROM PurchaseMaster LEFT OUTER JOIN ProductMaster ON PurchaseMaster.ProductID = ProductMaster.ProductID LEFT OUTER JOIN CustomerMaster AS CustomerMaster_1 ON PurchaseMaster.PurchaseLedgerID = CustomerMaster_1.CustomerID LEFT OUTER JOIN CustomerMaster ON PurchaseMaster.SupplierID = CustomerMaster.CustomerID Where PurchaseMaster.PurchaseID=@PurchaseID END GO Alter Table PurchaseMaster add InwardDate Datetime GO Alter Table ProductMaster Add GStPer int GO CREATE TABLE [dbo].[DeliveryRequest]( [username] [varchar](50) NULL, [password] [varchar](500) NULL, [qty] [money] NULL, [name] [varchar](500) NULL, [address] [varchar](max) NULL, [city] [varchar](500) NULL, [mobile] [varchar](50) NULL, [DeliveryPending] [varchar](max) NULL, [DeliveryRequest] [varchar](max) NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET ANSI_PADDING OFF GO Alter Table MetalSales Add RateWithoutGST Money GO Alter Table MetalSales Add ISTCSTDSRoundOff Bit Go Alter Table MetalSales Add ISTotalAmountWithTCS Bit GO Alter Table DeliveryRequest Add EnterDate Datetime GO CREATE TABLE [dbo].[BusinessVerticalMaster]( [BusinessVerticalID] [int] IDENTITY(1,1) NOT NULL, [BusinessVerticalName] [varchar](500) NULL, [EntryUserName] [nchar](200) NULL, [LastUpdateTime] [smalldatetime] NULL, CONSTRAINT [PK_BusinessVerticalMaster] PRIMARY KEY CLUSTERED ( [BusinessVerticalID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO Alter Table SoftwareSetting Add BusinessVertical bit GO Alter Table [Transactions] Add BusinessVerticalID int GO Alter Table Contra Add BusinessVerticalID int GO Alter Table DebitCreditNote Add BusinessVerticalID int GO Alter Table JournalVoucher Add BusinessVerticalID int GO Alter Table PurchaseMaster Add BusinessVerticalID int Go Alter Table MetalSales Add BusinessVerticalID int GO CREATE TABLE [dbo].[Audit]( [Type] [char](1) NULL, [TableName] [varchar](128) NULL, [PK] [varchar](1000) NULL, [FieldName] [varchar](128) NULL, [OldValue] [varchar](1000) NULL, [NewValue] [varchar](1000) NULL, [UpdateDate] [datetime] NULL, [UserName] [varchar](128) NULL ) ON [PRIMARY] GO Alter Table LoginMaster Add MobileNos Varchar(Max) Go Alter table CustomerMaster Add MiniadminUserName varchar(Max) Go Alter table CustomerMaster Add SoftwareStartDate Datetime Go Alter Table CustomerMaster Add PanelLock Bit GO CREATE TABLE [dbo].[SilverBarNumberMaster]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [BarNumber] [varchar](2000) NULL, [Weight] [money] NULL, [LastUpdateTime] [datetime] NULL, [EntrydateTime] [datetime] NULL, [EntryUsername] [varchar](max) NULL, [Status] [varchar](100) NULL, [SalesID] [bigint] NULL, [BranchID] [bigint] NULL, CONSTRAINT [PK_SilverBarNumberMaster] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET ANSI_PADDING OFF GO CREATE TABLE [dbo].[SilverBarNumberReport]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [BarNumber] [varchar](100) NULL, [Weight] [money] NULL, [LastUpdateTime] [datetime] NULL, [EntrydateTime] [datetime] NULL, [EntryUsername] [varchar](max) NULL, [Status] [varchar](100) NULL, [SalesID] [bigint] NULL, [BranchID] [bigint] NULL, [CustomerName] [varchar](max) NULL, CONSTRAINT [PK_SilverBarNumberReport] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET ANSI_PADDING OFF GO Alter Table Ledger Add BusinessVerticalID bigint Go CREATE PROCEDURE SPGETCustomerLedger @FirstDate Datetime, @CustomerID Bigint , @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT isnull(sum(isnull([credit],0)-isnull([debit],0)),0) FROM [Ledger] Where CustomerID ='+@CustomerID+' and [Date] < "'+@FirstDate+'"' if(@BranchID>0) Set @Query+=' and BranchID='+@BranchID if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+@BusinessVerticalID EXECUTE @Query END GO alter PROCEDURE SPGETCustomerLedger @FirstDate Datetime, @CustomerID Bigint , @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT isnull(sum(isnull([credit],0)-isnull([debit],0)),0) FROM [Ledger] Where CustomerID ='+CONVERT(varchar, @CustomerID)+' and CONVERT(varchar ,[Date],111) < '''+ CONVERT(varchar ,@FirstDate,111)+'''' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) EXECUTE (@Query) END GO Create PROCEDURE SPGetOpeningBalance @FirstDate Datetime, @CustomerID Bigint , @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT isnull(sum(isnull([credit],0)-isnull([debit],0)),0) FROM [Ledger] Where CustomerID ='+CONVERT(varchar, @CustomerID)+' and CONVERT(varchar ,[Date],111) < '''+ CONVERT(varchar ,@FirstDate,111)+'''' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) EXECUTE (@Query) END GO Alter PROCEDURE SPGETCustomerLedger @FirstDate Datetime, @ToDate Datetime, @CustomerID Bigint , @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT Ledger.VoucherNo, Ledger.Date, CustomerMaster.CustomerName, Ledger.Narration, Ledger.Particulars, Ledger.Debit, Ledger.Credit, Ledger.FinalBalance,Ledger.VoucherType,Ledger.VoucherID, '' as FinalBalanceString FROM Ledger INNER JOIN CustomerMaster ON Ledger.CustomerID = CustomerMaster.CustomerID Where (Ledger.CustomerID ='+CONVERT(varchar, @CustomerID)+') AND (Ledger.Date >='''+ CONVERT(varchar ,@FirstDate,111)+''') AND (Ledger.Date <='''+ CONVERT(varchar ,@ToDate,111)+''' )'' AND (ISNULL(Ledger.Debit, 0) + ISNULL(Ledger.Credit, 0) <> 0)' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) Set @Query+=' ORDER BY Ledger.Date, Ledger.VoucherNo' EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGetOpeningBalance] @FirstDate Datetime, @CustomerID Bigint , @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT isnull(sum(isnull([credit],0)-isnull([debit],0)),0) FROM [Ledger] Where CustomerID ='+CONVERT(varchar, @CustomerID)+' and CONVERT(varchar ,[Date],111) < '''+ CONVERT(varchar ,@FirstDate,111)+'''' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) EXECUTE (@Query) END GO Alter PROCEDURE SPGETCustomerLedger @FirstDate Datetime, @ToDate Datetime, @CustomerID Bigint , @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT Ledger.VoucherNo, Ledger.Date, CustomerMaster.CustomerName, Ledger.Narration, Ledger.Particulars, Ledger.Debit, Ledger.Credit, Ledger.FinalBalance,Ledger.VoucherType,Ledger.VoucherID,'''' as FinalBalanceString FROM Ledger INNER JOIN CustomerMaster ON Ledger.CustomerID = CustomerMaster.CustomerID Where (Ledger.CustomerID ='+CONVERT(varchar, @CustomerID)+') AND (Ledger.Date >='''+ CONVERT(varchar ,@FirstDate,111)+''') AND (Ledger.Date <='''+ CONVERT(varchar ,@ToDate,111)+''' ) AND (ISNULL(Ledger.Debit, 0) + ISNULL(Ledger.Credit, 0) <> 0)' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) Set @Query+=' ORDER BY Ledger.Date, Ledger.VoucherNo' --return @Query EXECUTE (@Query) END GO create PROCEDURE SPGETDayBook @FirstDate Datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='Select a.VoucherID, CustomerMaster.CustomerName as Particulars,a.VoucherDate,a.VoucherType,a.DebitAmount,A.CreditAmount,a.VoucherNo,a.BranchID,a.BusinessVerticalID From (Select VoucherID as VoucherID, CONVERT(varchar,ContaNo) as VoucherNo,ContraDate as VoucherDate,BankID2 as CustomerID,''Contra'' as VoucherType,0 as DebitAmount,Amount AS CreditAmount,BranchID,BusinessVerticalID From Contra Union All Select TransactionID as VoucherID,CONVERT(varchar,TransactionID) as VoucherNo,TransactionDate as VoucherDate,CustomerID as CustomerID, case when isNULL(Credit,0)>0 then ''Receipt'' else ''Payment'' end as VoucherType, isnull(Debit,0) as DebitAmount,isnull(Credit,0) AS CreditAmount,BranchID,BusinessVerticalID From Transactions Union All Select VoucherID as VoucherID, CONVERT(varchar,JournalVoucherNo) as VoucherNo,JournalVoucherDate as VoucherDate,CustomerID as CustomerID,''JournalVoucher'' as VoucherType,Debit as DebitAmount,0 AS CreditAmount,BranchID,BusinessVerticalID From JournalVoucher Where ISNULL(Debit,0)>0 Union all Select NoteID as VoucherID, CONVERT(varchar,InvoiceNo) as VoucherNo,NoteDate as VoucherDate,CustomerID as CustomerID,DebitCredit as VoucherType, case when DebitCredit=''Debit'' then TotalRate else 0 end as DebitAmount, case when DebitCredit=''Credit'' then TotalRate else 0 end as CreditAmount,BranchID,BusinessVerticalID From DebitCreditNote Union all Select SalesID as VoucherID,CONVERT(varchar,InvoiceNo) as VoucherNo,SalesDate as VoucherDate,CustomerID as CustomerID,''Sales'' as VoucherType,Total as DebitAmount,0 AS CreditAmount,BranchID,BusinessVerticalID From MetalSales Union all Select PurchaseID as VoucherID,CONVERT(varchar,InvoiceNo) as VoucherNo,PurchaseDate as VoucherDate,SupplierID as CustomerID,''Purchase'' as VoucherType,0 as DebitAmount,TotalAmount AS CreditAmount,BranchID,BusinessVerticalID From PurchaseMaster ) as a left join CustomerMaster on a.CustomerID=CustomerMaster.CustomerID Where Convert(varchar, VoucherDate,111)='''+ CONVERT(varchar ,@FirstDate,111)+'''' if(@BranchID>0) Set @Query+=' and a.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and a.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) --return (@Query) EXECUTE (@Query) END GO create PROCEDURE SPGETPurchaseMonthWise @FirstDate Datetime, @ToDate Datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select x.MonthId,x.Name,ISNUll(x.Total,0) as TotalAmount From (SELECT DateName( month , DateAdd( month , monthid , -1 )) Name,monthid,b.Total from( SELECT Month(DATEADD(MONTH, x.number, ''20140401'')) AS MonthId FROM master.dbo.spt_values x WHERE x.type = ''P'' AND x.number <= DATEDIFF(MONTH, ''20140401'', ''20150301'') ) A Left join (Select MONTH(PurchaseDate) as SaleMount, Sum(TotalAmount) as Total From PurchaseMaster Where Convert(varchar, PurchaseDate,111)='''+ CONVERT(varchar ,@FirstDate,111)+''' and Convert(varchar, PurchaseDate,111)='''+ CONVERT(varchar ,@ToDate,111)+'''' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) Set @Query+= ' Group By MONTH(PurchaseDate)) as b on a.MonthId=b.SaleMount) as x' --return (@Query) EXECUTE (@Query) END GO alter PROCEDURE SPGETPurchaseMonthWise @FirstDate Datetime, @ToDate Datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select x.MonthId,x.Name,ISNUll(x.Total,0) as TotalAmount From (SELECT DateName( month , DateAdd( month , monthid , -1 )) Name,monthid,b.Total from( SELECT Month(DATEADD(MONTH, x.number, ''20140401'')) AS MonthId FROM master.dbo.spt_values x WHERE x.type = ''P'' AND x.number <= DATEDIFF(MONTH, ''20140401'', ''20150301'') ) A Left join (Select MONTH(PurchaseDate) as SaleMount, Sum(TotalAmount) as Total From PurchaseMaster Where Convert(varchar, PurchaseDate,111)>='''+ CONVERT(varchar ,@FirstDate,111)+''' and Convert(varchar, PurchaseDate,111)<='''+ CONVERT(varchar ,@ToDate,111)+'''' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) Set @Query+= ' Group By MONTH(PurchaseDate)) as b on a.MonthId=b.SaleMount) as x' --return (@Query) EXECUTE (@Query) END GO Create PROCEDURE SPGETPurchaseMonthWiseReport @MonthName varchar(max), @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' SELECT PurchaseMaster.PurchaseID, CustomerMaster.CustomerName AS SupplierName, ProductMaster.ProductName, PurchaseMaster.Quantity, PurchaseMaster.Rate, PurchaseMaster.Value, PurchaseMaster.VATAmount, PurchaseMaster.TotalAmount, PurchaseMaster.InvoiceNo, PurchaseMaster.CreditDebit, PurchaseMaster.PurchaseDate, PurchaseMaster.CGST,PurchaseMaster.SGST,PurchaseMaster.IGST FROM PurchaseMaster Left JOIN CustomerMaster ON PurchaseMaster.SupplierID = CustomerMaster.CustomerID Left JOIN ProductMaster ON PurchaseMaster.ProductID = ProductMaster.ProductID Where (DATENAME(month,PurchaseMaster.PurchaseDate) = '''+@MonthName+''')' if(@BranchID>0) Set @Query+=' and PurchaseMaster.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and PurchaseMaster.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) Set @Query+= ' Order By PurchaseMaster.PurchaseDate, PurchaseMaster.PurchaseID' --return (@Query) EXECUTE (@Query) END GO alter PROCEDURE SPGETPurchaseMonthWiseReport @MonthName varchar(max), @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' SELECT PurchaseMaster.PurchaseID, CustomerMaster.CustomerName AS SupplierName, ProductMaster.ProductName, PurchaseMaster.Quantity, PurchaseMaster.Rate, PurchaseMaster.Value, PurchaseMaster.VATAmount, PurchaseMaster.TotalAmount, PurchaseMaster.InvoiceNo, PurchaseMaster.CreditDebit, PurchaseMaster.PurchaseDate, PurchaseMaster.CGST,PurchaseMaster.SGST,PurchaseMaster.IGST FROM PurchaseMaster Left JOIN CustomerMaster ON PurchaseMaster.SupplierID = CustomerMaster.CustomerID Left JOIN ProductMaster ON PurchaseMaster.ProductID = ProductMaster.ProductID Where (DATENAME(month,PurchaseMaster.PurchaseDate) = '''+@MonthName+''')' if(@BranchID>0) Set @Query+=' and PurchaseMaster.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and PurchaseMaster.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) Set @Query+= ' Order By PurchaseMaster.PurchaseDate, PurchaseMaster.PurchaseID' --return (@Query) EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETSaleMonthWise] @FirstDate Datetime, @ToDate Datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select x.MonthId,x.Name,ISNUll(x.Total,0) as TotalAmount From (SELECT DateName( month , DateAdd( month , monthid , -1 )) Name,monthid,b.Total from( SELECT Month(DATEADD(MONTH, x.number, ''20140401'')) AS MonthId FROM master.dbo.spt_values x WHERE x.type = ''P'' AND x.number <= DATEDIFF(MONTH, ''20140401'', ''20150301'') ) A Left join (Select MONTH(SalesDate) as SaleMount, Sum(Total) as Total From MetalSales Where Convert(varchar, SalesDate,111)>='''+ CONVERT(varchar ,@FirstDate,111)+''' and Convert(varchar, SalesDate,111)<='''+ CONVERT(varchar ,@ToDate,111)+'''' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) Set @Query+= ' Group By MONTH(SalesDate)) as b on a.MonthId=b.SaleMount) as x' --return (@Query) EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETSaleMonthWiseReport] @MonthName varchar(max), @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' SELECT MetalSales.SalesID, CustomerMaster.CustomerName, MetalSales.SalesDate, MetalSales.PaymentType, MetalSales.Quantity, MetalSales.Rate, MetalSales.Value, MetalSales.VAT, MetalSales.Total, MetalSales.InvoiceNo, CustomerMaster.GSTID AS TINNo, MetalSales.TransactionThrough AS BARNumber, MetalSales.isUnFix, MetalSales.CGST, MetalSales.SGST, MetalSales.IGST, MetalSales.ModeOfDelivery, MetalSales.ReverseChargeYN, MetalSales.Discount, MetalSales.ProductID, ProductMaster.ProductName, MetalSales.TCS, MetalSales.trdId, DeliveryChallan.VoucherNo,MetalSales.VoucherID FROM MetalSales LEFT OUTER JOIN CustomerMaster ON MetalSales.CustomerID = CustomerMaster.CustomerID LEFT OUTER JOIN ProductMaster ON MetalSales.ProductID = ProductMaster.ProductID LEFT OUTER JOIN DeliveryChallan ON MetalSales.SalesID = DeliveryChallan.SalesID Where (DATENAME(month,MetalSales.SalesDate) = '''+@MonthName+''')' if(@BranchID>0) Set @Query+=' and MetalSales.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and MetalSales.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) Set @Query+= ' ORDER BY CAST(MetalSales.SalesDate AS Date), MetalSales.InvoiceNo, MetalSales.SalesID ' --return (@Query) EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETCashBankBookAccount] @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' SELECT 0 as IsGroup,dbo.CustomerMaster.CustomerName as Particulars, dbo.AccountGroup.AccountGroupName, Sum(ISnull(dbo.Ledger.Debit,0)) as Debit, Sum(Isnull(dbo.Ledger.Credit,0)) as Credit ,IsNull( dbo.AccountGroup.AccountGroupID,0) as AccountGroupID,dbo.CustomerMaster.CustomerID FROM dbo.AccountGroup RIGHT OUTER JOIN dbo.CustomerMaster ON dbo.AccountGroup.AccountGroupID = dbo.CustomerMaster.AccountGroupID RIGHT OUTER JOIN dbo.Ledger ON dbo.CustomerMaster.CustomerID = dbo.Ledger.CustomerID Where ISnull(dbo.Ledger.Debit,0) > 0 or ISnull(dbo.Ledger.Credit,0) > 0' if(@BranchID>0) Set @Query+=' and Ledger.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and Ledger.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' Group by CustomerName,AccountGroupName,dbo.AccountGroup.AccountGroupID,dbo.CustomerMaster.CustomerID' EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETCashBankBook] @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select 1 as IsGroup,AccountGroupName,ISNULL(AccountGroupID,0) as AccountGroupID,Sum(ISnull(Debit,0)) as Debit,Sum(isnull(Credit,0)) as Credit From (SELECT 0 as IsGroup,dbo.CustomerMaster.CustomerName as Particulars, dbo.AccountGroup.AccountGroupName, ISnull(dbo.Ledger.Debit,0) as Debit, Isnull(dbo.Ledger.Credit,0) as Credit , dbo.AccountGroup.AccountGroupID, dbo.CustomerMaster.CustomerID FROM dbo.AccountGroup RIGHT OUTER JOIN dbo.CustomerMaster ON dbo.AccountGroup.AccountGroupID = dbo.CustomerMaster.AccountGroupID RIGHT OUTER JOIN dbo.Ledger ON dbo.CustomerMaster.CustomerID = dbo.Ledger.CustomerID Where 1=1 ' if(@BranchID>0) Set @Query+=' and Ledger.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and Ledger.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' ) as a Where AccountGroupName in (''Bank Accounts'',''Cash-in-Hand'') and (a.Debit >0 or a.Credit>0 )' EXECUTE (@Query) END GO alter PROCEDURE [dbo].[SPGETCashBankBook] @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select 1 as IsGroup,AccountGroupName,ISNULL(AccountGroupID,0) as AccountGroupID,Sum(ISnull(Debit,0)) as Debit,Sum(isnull(Credit,0)) as Credit From (SELECT 0 as IsGroup,dbo.CustomerMaster.CustomerName as Particulars, dbo.AccountGroup.AccountGroupName, ISnull(dbo.Ledger.Debit,0) as Debit, Isnull(dbo.Ledger.Credit,0) as Credit , dbo.AccountGroup.AccountGroupID, dbo.CustomerMaster.CustomerID FROM dbo.AccountGroup RIGHT OUTER JOIN dbo.CustomerMaster ON dbo.AccountGroup.AccountGroupID = dbo.CustomerMaster.AccountGroupID RIGHT OUTER JOIN dbo.Ledger ON dbo.CustomerMaster.CustomerID = dbo.Ledger.CustomerID Where 1=1 ' if(@BranchID>0) Set @Query+=' and Ledger.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and Ledger.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' ) as a Where AccountGroupName in (''Bank Accounts'',''Cash-in-Hand'') and (a.Debit >0 or a.Credit>0 ) Group By AccountGroupName,AccountGroupID' --return (@Query) EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETTrialBalanceAccountGroup] @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select 1 as IsGroup,AccountGroupName,ISNULL(AccountGroupID,0) as AccountGroupID,Sum(ISnull(Debit,0)) as Debit,Sum(isnull(Credit,0)) as Credit From (SELECT 0 as IsGroup,dbo.CustomerMaster.CustomerName as Particulars, dbo.AccountGroup.AccountGroupName, ISnull(dbo.Ledger.Debit,0) as Debit, Isnull(dbo.Ledger.Credit,0) as Credit , dbo.AccountGroup.AccountGroupID, dbo.CustomerMaster.CustomerID FROM dbo.AccountGroup RIGHT OUTER JOIN dbo.CustomerMaster ON dbo.AccountGroup.AccountGroupID = dbo.CustomerMaster.AccountGroupID RIGHT OUTER JOIN dbo.Ledger ON dbo.CustomerMaster.CustomerID = dbo.Ledger.CustomerID Where 1=1 ' if(@BranchID>0) Set @Query+=' and Ledger.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and Ledger.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' ) as a Where (a.Debit >0 or a.Credit>0 ) Group By AccountGroupName,AccountGroupID' --return (@Query) EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETAccountHeadForBalanceSheet] @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select c.AccountGroupID, a.AccountGroupName,a.NatureOfGroup,aa.NatureOfGroup as GrandNatureOfGroup, isnull(sum(Debit),0) as Debit,isnull(sum(Credit),0) as Credit From Ledger as l join CustomerMaster as c on l.CustomerID=c.CustomerID join AccountGroup as a on c.AccountGroupID=a.AccountGroupID left join AccountGroup as aa on a.GrandParentAccountGroupID=aa.AccountGroupID Where a.NatureOfGroup in (''Liabilities'',''Assets'') or aa.NatureOfGroup in (''Liabilities'',''Assets'')D Where 1=1 ' if(@BranchID>0) Set @Query+=' and L.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and L.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' Group by c.AccountGroupID, a.AccountGroupName,a.NatureOfGroup,aa.NatureOfGroup ' --return (@Query) EXECUTE (@Query) END GO ALTER PROCEDURE [dbo].[SPGETAccountHeadForBalanceSheet] @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select c.AccountGroupID, a.AccountGroupName,a.NatureOfGroup,aa.NatureOfGroup as GrandNatureOfGroup, isnull(sum(Debit),0) as Debit,isnull(sum(Credit),0) as Credit From Ledger as l join CustomerMaster as c on l.CustomerID=c.CustomerID join AccountGroup as a on c.AccountGroupID=a.AccountGroupID left join AccountGroup as aa on a.GrandParentAccountGroupID=aa.AccountGroupID Where a.NatureOfGroup in (''Liabilities'',''Assets'') or aa.NatureOfGroup in (''Liabilities'',''Assets'') Where 1=1 ' if(@BranchID>0) Set @Query+=' and L.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and L.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' Group by c.AccountGroupID, a.AccountGroupName,a.NatureOfGroup,aa.NatureOfGroup ' --return (@Query) EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETAccountGroupForBalanceSheet] @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select x.AccountGroupName,x.AccountGroupID,x.AccountHeadID,x.AccountHeadName,Sum(x.Debit) as Debit,Sum(x.Credit) as Credit From (Select isnull(a.Debit,0) as Debit,isnull(a.Credit,0) as Credit,a.CustomerID,b.NickName,b.CustomerName,c.AccountGroupID ,c.AccountGroupName,d.AccountHeadID,d.AccountHeadName From Ledger as a Left join CustomerMaster as b on a.CustomerID=b.CustomerID Left Join AccountGroup as c on b.AccountGroupID=c.AccountGroupID left join AccountHead as d on c.AccountHeadID=d.AccountHeadID Where 1=1 ' if(@BranchID>0) Set @Query+=' and A.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and A.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' ) as x Group By x.AccountGroupName,x.AccountGroupID,x.AccountHeadID,x.AccountHeadName ' --return (@Query) EXECUTE (@Query) END --EXECUTE SPGETCashBankBook 0,0 GO GO Create PROCEDURE [dbo].[SPGETAccountForBalanceSheet] @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select Sum(isnull(a.Debit,0)) as Debit,Sum(isnull(a.Credit,0)) as Credit,a.CustomerID,b.NickName,b.CustomerName,c.AccountGroupID ,c.AccountGroupName,d.AccountHeadID,d.AccountHeadName From Ledger as a Left join CustomerMaster as b on a.CustomerID=b.CustomerID Left Join AccountGroup as c on b.AccountGroupID=c.AccountGroupID left join AccountHead as d on c.AccountHeadID=d.AccountHeadID Where 1=1 ' if(@BranchID>0) Set @Query+=' and A.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and A.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' Group By a.CustomerID,b.NickName,b.CustomerName,c.AccountGroupID ,c.AccountGroupName,d.AccountHeadID,d.AccountHeadName ' --return (@Query) EXECUTE (@Query) END --EXECUTE SPGETCashBankBook 0,0 GO GO ALTER PROCEDURE [dbo].[SPGETAccountHeadForBalanceSheet] @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select c.AccountGroupID, a.AccountGroupName,a.NatureOfGroup,aa.NatureOfGroup as GrandNatureOfGroup, isnull(sum(Debit),0) as Debit,isnull(sum(Credit),0) as Credit From Ledger as l join CustomerMaster as c on l.CustomerID=c.CustomerID join AccountGroup as a on c.AccountGroupID=a.AccountGroupID left join AccountGroup as aa on a.GrandParentAccountGroupID=aa.AccountGroupID Where a.NatureOfGroup in (''Liabilities'',''Assets'') or aa.NatureOfGroup in (''Liabilities'',''Assets'')' if(@BranchID>0) Set @Query+=' and L.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and L.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' Group by c.AccountGroupID, a.AccountGroupName,a.NatureOfGroup,aa.NatureOfGroup ' --return (@Query) EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETAccountGroupPNLReport] @AccountGroupName varchar(max), @FromDate datetime, @ToDate datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select 1 as IsGroup,AccountGroupName,ISNULL(AccountGroupID,0) as AccountGroupID,Sum(ISnull(Debit,0)) as Debit, Sum(isnull(Credit,0)) as Credit,Sum(isnull(Credit,0)) +Sum(isnull(Debit,0)) as Amount From (SELECT 0 as IsGroup,dbo.CustomerMaster.CustomerName as Particulars, dbo.AccountGroup.AccountGroupName, ISnull(dbo.Ledger.Debit,0) as Debit, Isnull(dbo.Ledger.Credit,0) as Credit , dbo.AccountGroup.AccountGroupID, dbo.CustomerMaster.CustomerID FROM dbo.AccountGroup RIGHT OUTER JOIN dbo.CustomerMaster ON dbo.AccountGroup.AccountGroupID = dbo.CustomerMaster.AccountGroupID RIGHT OUTER JOIN dbo.Ledger ON dbo.CustomerMaster.CustomerID = dbo.Ledger.CustomerID Where AccountGroupName='''+@AccountGroupName+''' and dbo.Ledger.Date>= '''+ CONVERT(varchar ,@FromDate,111)+''' and dbo.Ledger.Date <='''+ CONVERT(varchar ,@ToDate,111)+''' ' if(@BranchID>0) Set @Query+=' and Ledger.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and Ledger.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' ) as a Where a.Debit >0 or a.Credit>0 Group By AccountGroupName,AccountGroupID' --return (@Query) EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETAccountPNLReport] @AccountGroupName varchar(max), @FromDate datetime, @ToDate datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' SELECT 0 as IsGroup,dbo.CustomerMaster.CustomerName as Particulars, dbo.AccountGroup.AccountGroupName, Sum(ISnull(dbo.Ledger.Debit,0)) as Debit, Sum(Isnull(dbo.Ledger.Credit,0)) as Credit,Sum(Isnull(dbo.Ledger.Debit,0))+Sum(Isnull(dbo.Ledger.Credit,0)) AS Amount ,IsNull( dbo.AccountGroup.AccountGroupID,0) as AccountGroupID,dbo.CustomerMaster.CustomerID FROM dbo.AccountGroup RIGHT OUTER JOIN dbo.CustomerMaster ON dbo.AccountGroup.AccountGroupID = dbo.CustomerMaster.AccountGroupID RIGHT OUTER JOIN dbo.Ledger ON dbo.CustomerMaster.CustomerID = dbo.Ledger.CustomerID Where ISnull(dbo.Ledger.Debit,0) > 0 or ISnull(dbo.Ledger.Credit,0) > 0 and dbo.Ledger.CustomerID in (Select CustomerID From CustomerMaster Where AccountGroupID in (Select AccountGroupID From AccountGroup Where AccountGroupName='''+@AccountGroupName+''') ) and dbo.Ledger.Date>= '''+ CONVERT(varchar ,@FromDate,111)+''' and dbo.Ledger.Date <='''+ CONVERT(varchar ,@ToDate,111)+''' ' if(@BranchID>0) Set @Query+=' and Ledger.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and Ledger.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' Group by CustomerName,AccountGroupName,dbo.AccountGroup.AccountGroupID,dbo.CustomerMaster.CustomerID' --return (@Query) EXECUTE (@Query) END --EXECUTE SPGETCashBankBook 0,0 GO Create PROCEDURE [dbo].[SPStockSummaryReport] @BranchID Bigint, @FromDate datetime, @ToDate Datetime AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select ProductID, ProductName,NickName,isnull( Pur.Qty,0) Qty,ISnull( Pur.BuyRate,0) BuyRate,isnull( Sell.SellQty,0) SellQty,isnull( Sell.SellRate,0) SellRate From ProductMaster as pm Left join (Select ProductID as PurProductID,Sum(Quantity) Qty,Sum(Rate)/Sum(Quantity) as BuyRate From PurchaseMaster Where PurchaseDate >= '''+CONVERT(varchar ,@FromDate,111) +''' And PurchaseDate <= '''+CONVERT(varchar ,@ToDate,111) +'''' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) set @Query+=' Group By ProductID ) as Pur on pm.ProductID=Pur.PurProductID Left join (Select ProductID as SellProductID,Sum(Quantity) SellQty,Sum (Rate)/Sum(Quantity) as SellRate From MetalSales Where SalesDate >='''+CONVERT(varchar ,@FromDate,111) +''' And SalesDate <= '''+CONVERT(varchar ,@ToDate,111) +'''' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) set @Query+=' Group By ProductID) as Sell on pm.ProductID=Sell.SellProductID ' --return @Query EXECUTE (@Query) END GO Alter PROCEDURE [dbo].[SPStockSummaryReport] @BranchID Bigint, @FromDate datetime, @ToDate Datetime AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select ProductID, ProductName,NickName,isnull( Pur.Qty,0) Qty,ISnull( Pur.BuyRate,0) BuyRate,isnull( Sell.SellQty,0) SellQty,isnull( Sell.SellRate,0) SellRate From ProductMaster as pm Left join (Select ProductID as PurProductID,Sum(Quantity) Qty,AVG(Rate) as BuyRate From PurchaseMaster Where PurchaseDate >= '''+CONVERT(varchar ,@FromDate,111) +''' And PurchaseDate <= '''+CONVERT(varchar ,@ToDate,111) +'''' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) set @Query+=' Group By ProductID ) as Pur on pm.ProductID=Pur.PurProductID Left join (Select ProductID as SellProductID,Sum(Quantity) SellQty,AVG(Rate) as SellRate From MetalSales Where SalesDate >='''+CONVERT(varchar ,@FromDate,111) +''' And SalesDate <= '''+CONVERT(varchar ,@ToDate,111) +'''' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) set @Query+=' Group By ProductID) as Sell on pm.ProductID=Sell.SellProductID ' --return @Query EXECUTE (@Query) END GO Alter Table CustomerMaster add GSTType varchar(20) GO Alter Table ProductMaster add ProductType varchar(20) GO Alter Table StateMaster Add StateCode int GO Alter Table SoftwareSetting Add ButtonFont nvarchar(2000) Go Alter Table SoftwareSetting Add TextBoxFont nvarchar(2000) Go Alter Table SoftwareSetting Add TextBoxFocuedFont nvarchar(2000) Go Alter Table SoftwareSetting Add LableFont nvarchar(2000) Go Alter Table SoftwareSetting Add ManuFont nvarchar(2000) Go Alter Table SoftwareSetting Add ManuSelectedFont nvarchar(2000) Go Alter Table SoftwareSetting Add CheckBoxFont nvarchar(2000) Go Alter Table SoftwareSetting Add CheckBoxFocuedFont nvarchar(2000) Go Alter Table SoftwareSetting Add DropDownFont nvarchar(2000) Go Alter Table SoftwareSetting Add DropDownFocuedFont nvarchar(2000) Go GO CREATE TABLE [dbo].[ManuSetting]( [ID] [int] IDENTITY(1,1) NOT NULL, [UserName] [varchar](50) NULL, [GSTPurchase] [bit] NULL, [GSTMetalSales] [bit] NULL, [TradeList] [bit] NULL, [CashBankEntry] [bit] NULL, [JournalVoucher] [bit] NULL, [ContraEntry] [bit] NULL, [CustomerLedger] [bit] NULL, [GSTDebitCreditNote] [bit] NULL, [UnFixEntry] [bit] NULL, [UnfixMapping] [bit] NULL, [DeliveryChallan] [bit] NULL, [DeliveryRequest] [bit] NULL, [ProductStatus] [bit] NULL, [DayBook] [bit] NULL, [GldStock] [bit] NULL, [SilverStock] [bit] NULL, [DeliveryPendingSummary] [bit] NULL, [ChangeBranch] [bit] NULL, [SilverbarNumberMaster] [bit] NULL, [BankMaster] [bit] NULL, [AccountGroup] [bit] NULL, [AccountMaster] [bit] NULL, [CustomerMaster] [bit] NULL, [ProductMaster] [bit] NULL, [BranchMaster] [bit] NULL, [StockOpeningBalance] [bit] NULL, [LoginMaster] [bit] NULL, [FinancialYear] [bit] NULL, [StateMaster] [bit] NULL, [RefreshAllMasters] [bit] NULL, [InvoiceMessageMaster] [bit] NULL, [ValueDate] [bit] NULL, [TaxMaster] [bit] NULL, [SMSMessageMaster] [bit] NULL, [BusinessVertical] [bit] NULL, [StockReport] [bit] NULL, [PurchaseRagister] [bit] NULL, [SaleRegister] [bit] NULL, [CashBankBook] [bit] NULL, [TrialBalance] [bit] NULL, [BalanceSheet] [bit] NULL, [ProfitLoss] [bit] NULL, [GSTReport] [bit] NULL, [BranchOutstanding] [bit] NULL, [TransferProductList] [bit] NULL, [ClientBalances] [bit] NULL, [TCSReport] [bit] NULL, [TDSReport] [bit] NULL, [FixUndeliveredMargin] [bit] NULL, [UnFixDeliveredMargin] [bit] NULL, [StockSummaryReport] [bit] NULL, [SetFinanciaYear] [bit] NULL, [OnlinePayment] [bit] NULL, [RazorpayReceipt] [bit] NULL, [TallySync] [bit] NULL, [LedgerConfiguration] [bit] NULL, [Setting] [bit] NULL, [FontSet] [bit] NULL, [Audit] [bit] NULL, [DashBorad] [bit] NULL, CONSTRAINT [PK_ManuSetting] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO GO ALTER PROCEDURE [dbo].[SPGETCustomerLedger] @FirstDate Datetime, @ToDate Datetime, @CustomerID Bigint , @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT Ledger.VoucherNo, Ledger.Date, CustomerMaster.CustomerName, Ledger.Narration, Ledger.Particulars, Ledger.Debit, Ledger.Credit, Ledger.FinalBalance,Ledger.VoucherType,Ledger.VoucherID,'''' as FinalBalanceString FROM Ledger INNER JOIN CustomerMaster ON Ledger.CustomerID = CustomerMaster.CustomerID Where (Ledger.CustomerID ='+CONVERT(varchar, @CustomerID)+') AND (CONVERT(varchar ,Ledger.Date,111) >='''+ CONVERT(varchar ,@FirstDate,111)+''') AND (CONVERT(varchar ,Ledger.Date,111) <='''+ CONVERT(varchar ,@ToDate,111)+''' ) AND (ISNULL(Ledger.Debit, 0) + ISNULL(Ledger.Credit, 0) <> 0)' if(@BranchID>0) Set @Query+=' and Ledger.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and Ledger.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) Set @Query+=' ORDER BY Ledger.Date, Ledger.VoucherNo' --return @Query EXECUTE (@Query) END GO CREATE TABLE [dbo].[CancelIRN]( [ID] [int] IDENTITY(1,1) NOT NULL, [SalesID] [bigint] NULL, [ISCancel] [bit] NULL, [Response] [nvarchar](max) NULL, [EntryUserName] [nchar](200) NULL, [LastUpdateTime] [datetime] NULL, CONSTRAINT [PK_CancelIRN] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO ALTER PROCEDURE [dbo].[SPGETDayBook] @FirstDate Datetime, @ToDate Datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='Select a.VoucherID, CustomerMaster.CustomerName as Particulars,a.VoucherDate,a.VoucherType,a.DebitAmount,A.CreditAmount,a.VoucherNo,a.BranchID,a.BusinessVerticalID From (Select VoucherID as VoucherID, CONVERT(varchar,ContaNo) as VoucherNo,ContraDate as VoucherDate,BankID2 as CustomerID,''Contra'' as VoucherType,0 as DebitAmount,Amount AS CreditAmount,BranchID,BusinessVerticalID From Contra Union All Select TransactionID as VoucherID,CONVERT(varchar,TransactionID) as VoucherNo,TransactionDate as VoucherDate,CustomerID as CustomerID, case when isNULL(Credit,0)>0 then ''Receipt'' else ''Payment'' end as VoucherType, isnull(Debit,0) as DebitAmount,isnull(Credit,0) AS CreditAmount,BranchID,BusinessVerticalID From Transactions Union All Select VoucherID as VoucherID, CONVERT(varchar,JournalVoucherNo) as VoucherNo,JournalVoucherDate as VoucherDate,CustomerID as CustomerID,''JournalVoucher'' as VoucherType,Debit as DebitAmount,0 AS CreditAmount,BranchID,BusinessVerticalID From JournalVoucher Where ISNULL(Debit,0)>0 Union all Select NoteID as VoucherID, CONVERT(varchar,InvoiceNo) as VoucherNo,NoteDate as VoucherDate,CustomerID as CustomerID,DebitCredit as VoucherType, case when DebitCredit=''Debit'' then TotalRate else 0 end as DebitAmount, case when DebitCredit=''Credit'' then TotalRate else 0 end as CreditAmount,BranchID,BusinessVerticalID From DebitCreditNote Union all Select SalesID as VoucherID,CONVERT(varchar,InvoiceNo) as VoucherNo,SalesDate as VoucherDate,CustomerID as CustomerID,''Sales'' as VoucherType,Total as DebitAmount,0 AS CreditAmount,BranchID,BusinessVerticalID From MetalSales Union all Select PurchaseID as VoucherID,CONVERT(varchar,InvoiceNo) as VoucherNo,PurchaseDate as VoucherDate,SupplierID as CustomerID,''Purchase'' as VoucherType,0 as DebitAmount,TotalAmount AS CreditAmount,BranchID,BusinessVerticalID From PurchaseMaster ) as a left join CustomerMaster on a.CustomerID=CustomerMaster.CustomerID Where Convert(varchar, VoucherDate,111)>='''+ CONVERT(varchar ,@FirstDate,111)+''' and Convert(varchar, VoucherDate,111)<='''+ CONVERT(varchar ,@ToDate,111)+'''' if(@BranchID>0) Set @Query+=' and a.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and a.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) --return (@Query) EXECUTE (@Query) END GO ALTER PROCEDURE [dbo].[SPGETAccountHeadForBalanceSheet] @FromDate datetime, @ToDate datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select c.AccountGroupID, a.AccountGroupName,a.NatureOfGroup,aa.NatureOfGroup as GrandNatureOfGroup, isnull(sum(Debit),0) as Debit,isnull(sum(Credit),0) as Credit From Ledger as l join CustomerMaster as c on l.CustomerID=c.CustomerID join AccountGroup as a on c.AccountGroupID=a.AccountGroupID left join AccountGroup as aa on a.GrandParentAccountGroupID=aa.AccountGroupID Where a.NatureOfGroup in (''Liabilities'',''Assets'') or aa.NatureOfGroup in (''Liabilities'',''Assets'') and Convert(varchar, l.Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, l.Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+'''' if(@BranchID>0) Set @Query+=' and L.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and L.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' Group by c.AccountGroupID, a.AccountGroupName,a.NatureOfGroup,aa.NatureOfGroup ' --return (@Query) EXECUTE (@Query) END GO ALTER PROCEDURE [dbo].[SPGETAccountGroupForBalanceSheet] @FromDate datetime, @ToDate datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select x.AccountGroupName,x.AccountGroupID,x.AccountHeadID,x.AccountHeadName,Sum(x.Debit) as Debit,Sum(x.Credit) as Credit From (Select isnull(a.Debit,0) as Debit,isnull(a.Credit,0) as Credit,a.CustomerID,b.NickName,b.CustomerName,c.AccountGroupID ,c.AccountGroupName,d.AccountHeadID,d.AccountHeadName From Ledger as a Left join CustomerMaster as b on a.CustomerID=b.CustomerID Left Join AccountGroup as c on b.AccountGroupID=c.AccountGroupID left join AccountHead as d on c.AccountHeadID=d.AccountHeadID Where 1=1 and Convert(varchar, a.Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, a.Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+'''' if(@BranchID>0) Set @Query+=' and A.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and A.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' ) as x Group By x.AccountGroupName,x.AccountGroupID,x.AccountHeadID,x.AccountHeadName ' --return (@Query) EXECUTE (@Query) END GO ALTER PROCEDURE [dbo].[SPGETAccountForBalanceSheet] @FromDate datetime, @ToDate datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select Sum(isnull(a.Debit,0)) as Debit,Sum(isnull(a.Credit,0)) as Credit,a.CustomerID,b.NickName,b.CustomerName,c.AccountGroupID ,c.AccountGroupName,d.AccountHeadID,d.AccountHeadName From Ledger as a Left join CustomerMaster as b on a.CustomerID=b.CustomerID Left Join AccountGroup as c on b.AccountGroupID=c.AccountGroupID left join AccountHead as d on c.AccountHeadID=d.AccountHeadID Where 1=1 and Convert(varchar, a.Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, a.Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+'''' if(@BranchID>0) Set @Query+=' and A.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and A.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' Group By a.CustomerID,b.NickName,b.CustomerName,c.AccountGroupID ,c.AccountGroupName,d.AccountHeadID,d.AccountHeadName ' --return (@Query) EXECUTE (@Query) END GO ALTER PROCEDURE [dbo].[SPGETAccountHeadForBalanceSheet] @FromDate datetime, @ToDate datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select c.AccountGroupID, a.AccountGroupName,a.NatureOfGroup,aa.NatureOfGroup as GrandNatureOfGroup, isnull(sum(Debit),0) as Debit,isnull(sum(Credit),0) as Credit From Ledger as l join CustomerMaster as c on l.CustomerID=c.CustomerID join AccountGroup as a on c.AccountGroupID=a.AccountGroupID left join AccountGroup as aa on a.GrandParentAccountGroupID=aa.AccountGroupID Where a.NatureOfGroup in (''Liabilities'',''Assets'') and Convert(varchar, l.Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, l.Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+'''' if(@BranchID>0) Set @Query+=' and L.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and L.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) Set @Query+=' or aa.NatureOfGroup in (''Liabilities'',''Assets'')' set @Query+=' Group by c.AccountGroupID, a.AccountGroupName,a.NatureOfGroup,aa.NatureOfGroup ' --return (@Query) EXECUTE (@Query) END GO Alter Table MetalSales Add Narration nvarchar(max) GO CREATE TABLE [dbo].[UserRight]( [ID] [int] IDENTITY(1,1) NOT NULL, [LoginType] [nvarchar](2000) NULL, [FormName] [nvarchar](2000) NULL, [FormAdd] [bit] NULL, [FormUpdate] [bit] NULL, [FormDelete] [bit] NULL, [FormView] [bit] NULL, [LastUpdate] [datetime] NULL, [EntryUserName] [nvarchar](2000) NULL, [miniadminUsername] [nvarchar](2000) NULL, CONSTRAINT [PK_UserRight] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO Alter Table LoginMaster Add BranchIDs nvarchar(200) GO Alter Table LoginMaster Add ProductIDs nvarchar(200) Go ALter Table BranchMaster Add EInvoiceClientID nvarchar(2000) Go ALter Table BranchMaster Add EInvoiceClientSecret nvarchar(2000) Go ALter Table BranchMaster Add EInvoiceUserName nvarchar(2000) Go ALter Table BranchMaster Add EInvoicePassword nvarchar(2000) GO CREATE TABLE [dbo].[LoginMasterBranchMapping]( [ID] [int] IDENTITY(1,1) NOT NULL, [LoginID] [nvarchar](100) NULL, [BranchID] [bigint] NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [datetime] NULL, CONSTRAINT [PK_LoginMasterBranchMapping] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[LoginMasterBranchMapping] WITH CHECK ADD CONSTRAINT [FK_LoginMasterBranchMapping_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO ALTER TABLE [dbo].[LoginMasterBranchMapping] CHECK CONSTRAINT [FK_LoginMasterBranchMapping_BranchMaster] GO ALTER TABLE [dbo].[LoginMasterBranchMapping] WITH CHECK ADD CONSTRAINT [FK_LoginMasterBranchMapping_LoginMaster] FOREIGN KEY([LoginID]) REFERENCES [dbo].[LoginMaster] ([LoginID]) GO ALTER TABLE [dbo].[LoginMasterBranchMapping] CHECK CONSTRAINT [FK_LoginMasterBranchMapping_LoginMaster] GO GO CREATE TABLE [dbo].[LoginMasterProductMapping]( [ID] [int] IDENTITY(1,1) NOT NULL, [LoginID] [nvarchar](100) NULL, [ProductID] [bigint] NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [datetime] NULL, CONSTRAINT [PK_LoginMasterProductMapping] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[LoginMasterProductMapping] WITH CHECK ADD CONSTRAINT [FK_LoginMasterProductMapping_LoginMaster] FOREIGN KEY([LoginID]) REFERENCES [dbo].[LoginMaster] ([LoginID]) GO ALTER TABLE [dbo].[LoginMasterProductMapping] CHECK CONSTRAINT [FK_LoginMasterProductMapping_LoginMaster] GO ALTER TABLE [dbo].[LoginMasterProductMapping] WITH CHECK ADD CONSTRAINT [FK_LoginMasterProductMapping_ProductMaster] FOREIGN KEY([ProductID]) REFERENCES [dbo].[ProductMaster] ([ProductID]) GO ALTER TABLE [dbo].[LoginMasterProductMapping] CHECK CONSTRAINT [FK_LoginMasterProductMapping_ProductMaster] GO Create PROCEDURE [dbo].[SPGETAccountGroupPNLReportChirayu] @AccountGroupName varchar(max), @FromDate datetime, @ToDate datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select 1 as IsGroup,AccountGroupName,ISNULL(AccountGroupID,0) as AccountGroupID,Sum(ISnull(Debit,0)) as Debit, Sum(isnull(Credit,0)) as Credit,Sum(isnull(Credit,0)) +Sum(isnull(Debit,0)) as Amount From (SELECT 0 as IsGroup,dbo.CustomerMaster.CustomerName as Particulars, dbo.AccountGroup.AccountGroupName, ISnull(dbo.Ledger.Debit,0) as Debit, Isnull(dbo.Ledger.Credit,0) as Credit , dbo.AccountGroup.AccountGroupID, dbo.CustomerMaster.CustomerID FROM dbo.AccountGroup Inner JOIN dbo.CustomerMaster ON dbo.AccountGroup.AccountGroupID = dbo.CustomerMaster.AccountGroupID Inner JOIN dbo.Ledger ON dbo.CustomerMaster.CustomerID = dbo.Ledger.CustomerID Where Ledger.VoucherType=''Cash - Bank Entry'' and ISNULL(Ledger.Debit,0) >0 and dbo.Ledger.Date>= '''+ CONVERT(varchar ,@FromDate,111)+''' and dbo.Ledger.Date <='''+ CONVERT(varchar ,@ToDate,111)+''' ' if(@BranchID>0) Set @Query+=' and Ledger.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and Ledger.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' and AccountGroupName like ''%bank%'' or AccountGroupName like ''%cash%'' ) as a Where a.Debit >0 or a.Credit>0 Group By AccountGroupName,AccountGroupID' --return (@Query) EXECUTE (@Query) END GO alter PROCEDURE [dbo].[SPGETAccountGroupPNLReportChirayu] @AccountGroupName varchar(max), @FromDate datetime, @ToDate datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select 1 as IsGroup,AccountGroupName,ISNULL(AccountGroupID,0) as AccountGroupID,Sum(ISnull(Debit,0)) as Debit, Sum(isnull(Credit,0)) as Credit,Sum(isnull(Credit,0)) +Sum(isnull(Debit,0)) as Amount From (SELECT 0 as IsGroup,dbo.CustomerMaster.CustomerName as Particulars, dbo.AccountGroup.AccountGroupName, ISnull(dbo.Ledger.Debit,0) as Debit, Isnull(dbo.Ledger.Credit,0) as Credit , dbo.AccountGroup.AccountGroupID, dbo.CustomerMaster.CustomerID FROM dbo.AccountGroup Inner JOIN dbo.CustomerMaster ON dbo.AccountGroup.AccountGroupID = dbo.CustomerMaster.AccountGroupID Inner JOIN dbo.Ledger ON dbo.CustomerMaster.CustomerID = dbo.Ledger.CustomerID Where Ledger.VoucherType=''Cash - Bank Entry'' and ISNULL(Ledger.Debit,0) >0 and dbo.Ledger.Date>= '''+ CONVERT(varchar ,@FromDate,111)+''' and dbo.Ledger.Date <='''+ CONVERT(varchar ,@ToDate,111)+''' ' if(@BranchID>0) Set @Query+=' and Ledger.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and Ledger.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' --and AccountGroupName like ''%bank%'' or AccountGroupName like ''%cash%'' ) as a Where a.Debit >0 or a.Credit>0 Group By AccountGroupName,AccountGroupID' --return (@Query) EXECUTE (@Query) END GO create PROCEDURE [dbo].[SPGETAccountPNLReportChirayu] @AccountGroupName varchar(max), @FromDate datetime, @ToDate datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' SELECT 0 as IsGroup,dbo.CustomerMaster.CustomerName as Particulars, dbo.AccountGroup.AccountGroupName, Sum(ISnull(dbo.Ledger.Debit,0)) as Debit, Sum(Isnull(dbo.Ledger.Credit,0)) as Credit,Sum(Isnull(dbo.Ledger.Debit,0))+Sum(Isnull(dbo.Ledger.Credit,0)) AS Amount ,IsNull( dbo.AccountGroup.AccountGroupID,0) as AccountGroupID,dbo.CustomerMaster.CustomerID FROM dbo.AccountGroup RIGHT OUTER JOIN dbo.CustomerMaster ON dbo.AccountGroup.AccountGroupID = dbo.CustomerMaster.AccountGroupID RIGHT OUTER JOIN dbo.Ledger ON dbo.CustomerMaster.CustomerID = dbo.Ledger.CustomerID Where ISnull(dbo.Ledger.Debit,0) > 0 or ISnull(dbo.Ledger.Credit,0) > 0 and dbo.Ledger.VoucherType=''Cash - Bank Entry'' and dbo.Ledger.Date>= '''+ CONVERT(varchar ,@FromDate,111)+''' and dbo.Ledger.Date <='''+ CONVERT(varchar ,@ToDate,111)+''' ' if(@BranchID>0) Set @Query+=' and Ledger.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and Ledger.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' Group by CustomerName,AccountGroupName,dbo.AccountGroup.AccountGroupID,dbo.CustomerMaster.CustomerID' --return (@Query) EXECUTE (@Query) END GO ALTER PROCEDURE [dbo].[SPGETAccountPNLReportChirayu] @AccountGroupName varchar(max), @FromDate datetime, @ToDate datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' SELECT 0 as IsGroup,dbo.CustomerMaster.CustomerName as Particulars, dbo.AccountGroup.AccountGroupName, Sum(ISnull(dbo.Ledger.Debit,0)) as Debit, Sum(Isnull(dbo.Ledger.Credit,0)) as Credit,Sum(Isnull(dbo.Ledger.Debit,0))+Sum(Isnull(dbo.Ledger.Credit,0)) AS Amount ,IsNull( dbo.AccountGroup.AccountGroupID,0) as AccountGroupID,dbo.CustomerMaster.CustomerID FROM dbo.AccountGroup Inner JOIN dbo.CustomerMaster ON dbo.AccountGroup.AccountGroupID = dbo.CustomerMaster.AccountGroupID Inner JOIN dbo.Ledger ON dbo.CustomerMaster.CustomerID = dbo.Ledger.CustomerID Where ISnull(dbo.Ledger.Debit,0) > 0 or ISnull(dbo.Ledger.Credit,0) > 0 and dbo.Ledger.VoucherType=''Cash - Bank Entry'' and dbo.Ledger.Date>= '''+ CONVERT(varchar ,@FromDate,111)+''' and dbo.Ledger.Date <='''+ CONVERT(varchar ,@ToDate,111)+''' ' if(@BranchID>0) Set @Query+=' and Ledger.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and Ledger.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' --and AccountGroup.AccountGroupName like ''%sundry%'' Group by CustomerName,AccountGroupName,dbo.AccountGroup.AccountGroupID,dbo.CustomerMaster.CustomerID HAVING (dbo.AccountGroup.AccountGroupName LIKE ''%sundry%'')' --return (@Query) EXECUTE (@Query) END GO ALTER PROCEDURE [dbo].[SPGETAccountGroupPNLReportChirayu] @AccountGroupName varchar(max), @FromDate datetime, @ToDate datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select 1 as IsGroup,AccountGroupName,ISNULL(AccountGroupID,0) as AccountGroupID,Sum(ISnull(Debit,0)) as Debit, Sum(isnull(Credit,0)) as Credit,Sum(isnull(Credit,0)) +Sum(isnull(Debit,0)) as Amount From (SELECT 0 as IsGroup,dbo.CustomerMaster.CustomerName as Particulars, dbo.AccountGroup.AccountGroupName, ISnull(dbo.Ledger.Debit,0) as Debit, Isnull(dbo.Ledger.Credit,0) as Credit , dbo.AccountGroup.AccountGroupID, dbo.CustomerMaster.CustomerID FROM dbo.AccountGroup Inner JOIN dbo.CustomerMaster ON dbo.AccountGroup.AccountGroupID = dbo.CustomerMaster.AccountGroupID Inner JOIN dbo.Ledger ON dbo.CustomerMaster.CustomerID = dbo.Ledger.CustomerID Where Ledger.VoucherType=''Cash - Bank Entry'' and ISNULL(Ledger.Debit,0) >0 and dbo.Ledger.Date>= '''+ CONVERT(varchar ,@FromDate,111)+''' and dbo.Ledger.Date <='''+ CONVERT(varchar ,@ToDate,111)+''' ' if(@BranchID>0) Set @Query+=' and Ledger.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and Ledger.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) set @Query+=' --and AccountGroup.AccountGroupName like ''%sundry%'' ) as a Where a.Debit >0 or a.Credit>0 Group By AccountGroupName,AccountGroupID HAVING (AccountGroupName LIKE ''%sundry%'')' --return (@Query) EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETExpensesMountWise] AS BEGIN DECLARE @Pivot_Column [nvarchar](max); SELECT @Pivot_Column= COALESCE(@Pivot_Column+',','')+ QUOTENAME(MonthName1) FROM (SELECT DISTINCT month(Date) as MonthName1 FROM Ledger)Tab DECLARE @Query varchar(max)='' Set @Query='Select CustomerID,CustomerName ,'+@Pivot_Column+' From (Select CustomerID,CustomerName,MonthName1,Sum(x.Amount) as Amount From (Select cm.CustomerID,cm.CustomerName,isnull(l.Credit,0)-ISNULL(l.Debit,0) as Amount,month(l.Date) as MonthName1 From (Select CustomerID,CustomerName from CustomerMaster Where AccountGroupID in (Select AccountGroupID From AccountGroup Where AccountGroupName like ''%expenses%'' or GrandParentAccountGroupID in (Select AccountGroupID From AccountGroup Where AccountGroupName like ''%expenses%''))) as CM inner Join Ledger as l on cm.CustomerID=l.CustomerID)as x Group by CustomerID,CustomerName,MonthName1) Y PIVOT ( SUM(Amount) FOR MonthName1 IN ('+@Pivot_Column+')) AS Tab2 ' EXECUTE (@Query) END Go alter PROCEDURE [dbo].[SPGETExpensesMountWise] AS BEGIN DECLARE @Pivot_Column [nvarchar](max); SELECT @Pivot_Column= COALESCE(@Pivot_Column+',','')+ QUOTENAME(MonthName1) FROM (SELECT DISTINCT datename(month, Date) as MonthName1 FROM Ledger)Tab DECLARE @Query varchar(max)='' Set @Query='Select CustomerID,CustomerName ,'+@Pivot_Column+' From (Select CustomerID,CustomerName,MonthName1,Sum(x.Amount) as Amount From (Select cm.CustomerID,cm.CustomerName,ABS(isnull(l.Credit,0)-ISNULL(l.Debit,0)) as Amount,datename(month, l.Date) as MonthName1 From (Select CustomerID,CustomerName from CustomerMaster Where AccountGroupID in (Select AccountGroupID From AccountGroup Where AccountGroupName like ''%expenses%'' or GrandParentAccountGroupID in (Select AccountGroupID From AccountGroup Where AccountGroupName like ''%expenses%''))) as CM inner Join Ledger as l on cm.CustomerID=l.CustomerID)as x Group by CustomerID,CustomerName,MonthName1) Y PIVOT ( SUM(Amount) FOR MonthName1 IN ('+@Pivot_Column+')) AS Tab2 ' --return (@Query) EXECUTE (@Query) END GO alter PROCEDURE [dbo].[SPGETExpensesMountWise] @FromDate datetime, @ToDate datetime AS BEGIN DECLARE @Pivot_Column [nvarchar](max); SELECT @Pivot_Column= COALESCE(@Pivot_Column+',','')+ QUOTENAME(MonthName1) FROM (SELECT DISTINCT datename(month, Date) as MonthName1 FROM Ledger)Tab DECLARE @Query varchar(max)='' Set @Query='Select CustomerID,CustomerName ,'+@Pivot_Column+' From (Select CustomerID,CustomerName,MonthName1,Sum(x.Amount) as Amount From (Select cm.CustomerID,cm.CustomerName,ABS(isnull(l.Credit,0)-ISNULL(l.Debit,0)) as Amount,datename(month, l.Date) as MonthName1 From (Select CustomerID,CustomerName from CustomerMaster Where AccountGroupID in (Select AccountGroupID From AccountGroup Where AccountGroupName like ''%expenses%'' or GrandParentAccountGroupID in (Select AccountGroupID From AccountGroup Where AccountGroupName like ''%expenses%''))) as CM inner Join Ledger as l on cm.CustomerID=l.CustomerID Where 1=1 and Convert(varchar, l.Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, l.Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' )as x Group by CustomerID,CustomerName,MonthName1) Y PIVOT ( SUM(Amount) FOR MonthName1 IN ('+@Pivot_Column+')) AS Tab2 ' --return (@Query) EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETMonthSummaryChirayu] @FromDate datetime, @ToDate datetime AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select * From (Select ''Receipt'' VType, datename(month, Date) as MonthName1, CustomerID,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' --and isnull(Credit,0)>0 and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date),CustomerID Union All Select ''GST of previous month'' VType, datename(month, Date) as MonthName1, CustomerID,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' and CustomerID in (Select CustomerID From CustomerMaster Where CustomerName like ''%Input'') and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date),CustomerID Union All Select ''Savings'' VType, datename(month, Date) as MonthName1, CustomerID,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' and CustomerID in (Select CustomerID From CustomerMaster Where CustomerName like ''%Savings'') and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date),CustomerID Union All Select ''Expense'' VType, datename(month, Date) as MonthName1, CustomerID,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' and CustomerID in (Select CustomerID From CustomerMaster Where CustomerName like ''%Expense'') and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date),CustomerID Union All Select ''Sales ( New order )'' VType, datename(month, Date) as MonthName1, CustomerID,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Metal Sale'' and isnull(BusinessVerticalID,0) not in (Select BusinessVerticalID from BusinessVerticalMaster Where BusinessVerticalName like ''%AMC%'') and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date),CustomerID Union All Select ''AMC Sales'' VType, datename(month, Date) as MonthName1, CustomerID,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Metal Sale'' and BusinessVerticalID in (Select BusinessVerticalID from BusinessVerticalMaster Where BusinessVerticalName like ''%AMC%'') and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date),CustomerID ) as a Where 1=1 ' EXECUTE (@Query) END GO Alter PROCEDURE [dbo].[SPGETMonthSummaryChirayu] @FromDate datetime, @ToDate datetime AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select MonthName1,SUM([Receipt]) as Receipt, Sum([GSTofPreviousMonth]) as GSTofPreviousMonth, Sum([Savings]) as Savings, Sum([Expense]) as Expense, Sum([SalesNewOrder]) as SalesNewOrder, Sum([AMCSales]) as AMCSales From (Select MonthName1,[Receipt],[GSTofPreviousMonth],[Savings],[Expense],[SalesNewOrder],[AMCSales] From (Select ''Receipt'' VType, datename(month, Date) as MonthName1,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' --and isnull(Credit,0)>0 and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date) Union All Select ''GSTofPreviousMonth'' VType, datename(month, Date) as MonthName1,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' and CustomerID in (Select CustomerID From CustomerMaster Where CustomerName like ''%Input%'') and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date) Union All Select ''Savings'' VType, datename(month, Date) as MonthName1,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' and CustomerID in (Select CustomerID From CustomerMaster Where CustomerName like ''%Savings%'') and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date) Union All Select ''Expense'' VType, datename(month, Date) as MonthName1,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' and CustomerID in (Select CustomerID From CustomerMaster Where CustomerName like ''%Expense%'') and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date) Union All Select ''SalesNewOrder'' VType, datename(month, Date) as MonthName1,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Metal Sale'' and isnull(BusinessVerticalID,0) not in (Select BusinessVerticalID from BusinessVerticalMaster Where BusinessVerticalName like ''%AMC%'') and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date) Union All Select ''AMCSales'' VType, datename(month, Date) as MonthName1,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Metal Sale'' and BusinessVerticalID in (Select BusinessVerticalID from BusinessVerticalMaster Where BusinessVerticalName like ''%AMC%'') and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date) ) as a PIVOT ( SUM(Debit) FOR VType IN ([Receipt],[GSTofPreviousMonth],[Savings],[Expense],[SalesNewOrder],[AMCSales])) AS Tab2 ) as Tab3 Group By MonthName1 Order by DATEPART(MM,MonthName1+ '' 01 2021'') ' EXECUTE (@Query) END GO Alter PROCEDURE [dbo].[SPGETMonthSummaryChirayu] @FromDate datetime, @ToDate datetime AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select DATEPART(MM,MonthName1+ '' 01 2021'') as MonthNumber, MonthName1, isnull(SUM([Receipt]),0) as Receipt, isnull(Sum([GSTofPreviousMonth]),0) as GSTofPreviousMonth, isnull(Sum([Savings]),0) as Savings, isnull(Sum([Expense]),0) as Expense, isnull(Sum([SalesNewOrder]),0) as SalesNewOrder, isnull(Sum([AMCSales]),0) as AMCSales , isnull(Sum([OutstandingAmount]),0) as OutstandingAmount From (Select MonthName1,[Receipt],[GSTofPreviousMonth],[Savings],[Expense],[SalesNewOrder],[AMCSales],[OutstandingAmount] From (Select ''Receipt'' VType, datename(month, Date) as MonthName1,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' and CustomerID in (Select CustomerID From CustomerMaster Where AccountGroupID in (Select AccountGroupID From AccountGroup Where AccountGroupName like ''%Debtors%'')) --and isnull(Credit,0)>0 and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date) Union All Select ''GSTofPreviousMonth'' VType, datename(month, Date) as MonthName1,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' and CustomerID in (Select CustomerID From CustomerMaster Where CustomerName like ''%Input%'') and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date) Union All Select ''Savings'' VType, datename(month, Date) as MonthName1,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' and CustomerID in (Select CustomerID From CustomerMaster Where CustomerName like ''%Savings%'') and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date) Union All Select ''Expense'' VType, datename(month, Date) as MonthName1,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' and CustomerID in (Select CustomerID From CustomerMaster Where CustomerName like ''%Expense%'') and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date) Union All Select ''SalesNewOrder'' VType, datename(month, Date) as MonthName1,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' and isnull(BusinessVerticalID,0) in (Select BusinessVerticalID from BusinessVerticalMaster Where BusinessVerticalName like ''%NEW%'') and CustomerID in (Select CustomerID From CustomerMaster Where AccountGroupID in (Select AccountGroupID From AccountGroup Where AccountGroupName like ''%Debtors%'')) and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date) Union All Select ''AMCSales'' VType, datename(month, Date) as MonthName1,isnull(Sum(Debit),0) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where VoucherType=''Cash - Bank Entry'' and BusinessVerticalID Not in (Select BusinessVerticalID from BusinessVerticalMaster Where BusinessVerticalName like ''%NEW%'') and CustomerID in (Select CustomerID From CustomerMaster Where AccountGroupID in (Select AccountGroupID From AccountGroup Where AccountGroupName like ''%Debtors%'')) and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date) Union All Select ''OutstandingAmount'' VType, datename(month, Date) as MonthName1,(isnull(Sum(Debit),0)-isnull(Sum(Credit),0)) as Debit,isnull(Sum(Credit),0) as Credit From ledger Where 1=1 and CustomerID in (Select CustomerID From CustomerMaster Where AccountGroupID in (Select AccountGroupID From AccountGroup Where AccountGroupName like ''%Debtors%'')) and Convert(varchar, Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' Group By datename(month, Date) ) as a PIVOT ( SUM(Debit) FOR VType IN ([Receipt],[GSTofPreviousMonth],[Savings],[Expense],[SalesNewOrder],[AMCSales],[OutstandingAmount])) AS Tab2 ) as Tab3 Group By MonthName1 Order by DATEPART(MM,MonthName1+ '' 01 2021'') ' EXECUTE (@Query) END GO CREATE VIEW [dbo].[ViewCustomerMaster] AS SELECT dbo.CustomerMaster.CustomerName, dbo.CustomerMaster.NickName, dbo.AccountGroup.AccountGroupName FROM dbo.CustomerMaster LEFT OUTER JOIN dbo.AccountGroup ON dbo.CustomerMaster.AccountGroupID = dbo.AccountGroup.AccountGroupID GO Go CREATE PROCEDURE [SPGetColumnNameByView] @ViewCustomerMaster varchar(max) AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('''+@ViewCustomerMaster+''') ' EXECUTE (@Query) END GO GO CREATE TABLE [dbo].[DynamicReport]( [ID] [int] IDENTITY(1,1) NOT NULL, [ReportTitel] [nvarchar](2000) NULL, [ReportView] [nvarchar](2000) NULL, [ReportXML] [nvarchar](max) NULL, [EntryUserName] [nchar](2000) NULL, [LastUpdateTime] [datetime] NULL, CONSTRAINT [PK_DynamicReport] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO Go CREATE PROCEDURE [SPGetViewData] @ViewName varchar(max) AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT * FROM '+ @ViewName EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETCashBankEntry] @BankID BigInt, @BusinessVerticalID Bigint, @TransactionType nvarchar(20), @FromDate Datetime, @ToDate Datetime AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' SELECT TransactionID,TransactionDate,BankID,TransactionType,Credit,Debit,Remarks,Narration ,ConnectedTransactionID,CustomerVoucherNo,BookVoucherNo ,VoucherID , cm.CustomerName,BCM.CustomerName as BankName,Bm.BranchName,BVM.BusinessVerticalName FROM Transactions as t Left Join CustomerMaster as CM On t.CustomerID=CM.CustomerID Left Join CustomerMaster as BCM On t.BankID=BCM.CustomerID Left JOin BranchMaster as BM on t.BranchID=Bm.BranchID Left join BusinessVerticalMaster as BVM on t.BusinessVerticalID =BVM.BusinessVerticalID Where Convert(varchar, TransactionDate,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, TransactionDate,111)<='''+ CONVERT(varchar ,@ToDate,111)+'''' if(@BankID>0) Set @Query+=' and T.BankID='+CONVERT(varchar,@BankID) if(@BusinessVerticalID>0) Set @Query+=' and T.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) if(@TransactionType!='All') Set @Query+=' and T.TransactionType='''+CONVERT(varchar,@TransactionType)+'''' --return (@Query) EXECUTE (@Query) END Go alter PROCEDURE [dbo].[SPGETCashBankEntry] @BankID BigInt, @BusinessVerticalID Bigint, @TransactionType nvarchar(20), @FromDate Datetime, @ToDate Datetime AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' SELECT TransactionID,TransactionDate,BankID,TransactionType,Credit,Debit,Remarks,Narration ,ConnectedTransactionID,CustomerVoucherNo,BookVoucherNo ,VoucherID , cm.CustomerName,BCM.CustomerName as BankName,Bm.BranchName,BVM.BusinessVerticalName FROM Transactions as t Left Join CustomerMaster as CM On t.CustomerID=CM.CustomerID Left Join CustomerMaster as BCM On t.BankID=BCM.CustomerID Left JOin BranchMaster as BM on t.BranchID=Bm.BranchID Left join BusinessVerticalMaster as BVM on t.BusinessVerticalID =BVM.BusinessVerticalID Where Convert(varchar, TransactionDate,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, TransactionDate,111)<='''+ CONVERT(varchar ,@ToDate,111)+'''' if(@BankID>0) Set @Query+=' and T.BankID='+CONVERT(varchar,@BankID) if(@BusinessVerticalID>0) Set @Query+=' and T.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) if(@TransactionType!='All') Set @Query+=' and T.TransactionType='''+CONVERT(varchar,@TransactionType)+'''' --return (@Query) EXECUTE (@Query) END GO Alter Table CustomerMaster add OpeningType nvarchar(max) Go Alter Table CustomerMaster add Branch bigint Go Alter Table CustomerMaster add TallyCustomerName nvarchar(max) Go Alter Table CustomerMaster add MiniadminUserName nvarchar(max) Go Alter Table CustomerMaster add SoftwareStartDate datetime Go GO ALTER PROCEDURE [dbo].[SPGETCashBankEntry] @BankID BigInt, @BusinessVerticalID Bigint, @TransactionType nvarchar(20), @FromDate Datetime, @ToDate Datetime AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' SELECT CASE WHEN ISNULL(T.Credit,0)>0 THEN ''Receipt'' ELSE ''Payment'' END as Types, TransactionID,TransactionDate,BankID,TransactionType,Credit,Debit,Remarks,Narration ,ConnectedTransactionID,CustomerVoucherNo,BookVoucherNo ,VoucherID , cm.CustomerName,BCM.CustomerName as BankName,Bm.BranchName,BVM.BusinessVerticalName FROM Transactions as t Left Join CustomerMaster as CM On t.CustomerID=CM.CustomerID Left Join CustomerMaster as BCM On t.BankID=BCM.CustomerID Left JOin BranchMaster as BM on t.BranchID=Bm.BranchID Left join BusinessVerticalMaster as BVM on t.BusinessVerticalID =BVM.BusinessVerticalID Where Convert(varchar, TransactionDate,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, TransactionDate,111)<='''+ CONVERT(varchar ,@ToDate,111)+'''' if(@BankID>0) Set @Query+=' and T.BankID='+CONVERT(varchar,@BankID) if(@BusinessVerticalID>0) Set @Query+=' and T.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) if(@TransactionType!='All') if(@TransactionType='Receipt') Set @Query+=' and ISNULL(T.Credit,0)>0' else Set @Query+=' and ISNULL(T.Debit,0)>0' --return (@Query) EXECUTE (@Query) END GO CREATE TABLE [dbo].[BankStatementParticulars]( [ID] [int] IDENTITY(1,1) NOT NULL, [Particulars] [nvarchar](max) NOT NULL, [CustomerID] [int] NULL, [EnterUserName] [nvarchar](50) NULL, [LastUpdateDate] [datetime] NULL, CONSTRAINT [PK_BankStatementParticulars] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO ALTER PROCEDURE [dbo].[SPGETDayBook] @FirstDate Datetime, @ToDate Datetime, @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='Select BusinessVerticalMaster.BusinessVerticalName ,a.VoucherID, CustomerMaster.CustomerName as Particulars,a.VoucherDate,a.VoucherType,a.DebitAmount,A.CreditAmount,a.VoucherNo,a.BranchID,a.BusinessVerticalID From (Select VoucherID as VoucherID, CONVERT(varchar,ContaNo) as VoucherNo,ContraDate as VoucherDate,BankID2 as CustomerID,''Contra'' as VoucherType,0 as DebitAmount,Amount AS CreditAmount,BranchID,BusinessVerticalID From Contra Union All Select TransactionID as VoucherID,CONVERT(varchar,TransactionID) as VoucherNo,TransactionDate as VoucherDate,CustomerID as CustomerID, case when isNULL(Credit,0)>0 then ''Receipt'' else ''Payment'' end as VoucherType, isnull(Debit,0) as DebitAmount,isnull(Credit,0) AS CreditAmount,BranchID,BusinessVerticalID From Transactions Union All Select VoucherID as VoucherID, CONVERT(varchar,JournalVoucherNo) as VoucherNo,JournalVoucherDate as VoucherDate,CustomerID as CustomerID,''JournalVoucher'' as VoucherType,Debit as DebitAmount,0 AS CreditAmount,BranchID,BusinessVerticalID From JournalVoucher Where ISNULL(Debit,0)>0 Union all Select NoteID as VoucherID, CONVERT(varchar,InvoiceNo) as VoucherNo,NoteDate as VoucherDate,CustomerID as CustomerID,DebitCredit as VoucherType, case when DebitCredit=''Debit'' then TotalRate else 0 end as DebitAmount, case when DebitCredit=''Credit'' then TotalRate else 0 end as CreditAmount,BranchID,BusinessVerticalID From DebitCreditNote Union all Select SalesID as VoucherID,CONVERT(varchar,InvoiceNo) as VoucherNo,SalesDate as VoucherDate,CustomerID as CustomerID,''Sales'' as VoucherType,Total as DebitAmount,0 AS CreditAmount,BranchID,BusinessVerticalID From MetalSales Union all Select PurchaseID as VoucherID,CONVERT(varchar,InvoiceNo) as VoucherNo,PurchaseDate as VoucherDate,SupplierID as CustomerID,''Purchase'' as VoucherType,0 as DebitAmount,TotalAmount AS CreditAmount,BranchID,BusinessVerticalID From PurchaseMaster ) as a left join CustomerMaster on a.CustomerID=CustomerMaster.CustomerID left join BusinessVerticalMaster on a.BusinessVerticalID=BusinessVerticalMaster.BusinessVerticalID Where Convert(varchar, VoucherDate,111)>='''+ CONVERT(varchar ,@FirstDate,111)+''' and Convert(varchar, VoucherDate,111)<='''+ CONVERT(varchar ,@ToDate,111)+'''' if(@BranchID>0) Set @Query+=' and a.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and a.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) --return (@Query) EXECUTE (@Query) END GO Alter Table SoftwareSetting Add EnterUserName nvarchar(2000) Go Alter Table SoftwareSetting Add Width bigInt Go GO ALTER PROCEDURE [dbo].[SPGetOpeningBalance] @FirstDate Datetime, @CustomerID Bigint , @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT isnull(sum(isnull([credit],0)-isnull([debit],0)),0) FROM [Ledger] Where CustomerID ='+ @CustomerID+' and CONVERT(varchar ,[Date],111) < '''+ CONVERT(varchar ,@FirstDate,111)+'''' if(@BranchID>0) Set @Query+=' and BranchID='+@BranchID if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+@BusinessVerticalID EXECUTE (@Query) END GO ALTER PROCEDURE [dbo].[SPGetOpeningBalance] @FirstDate Datetime, @CustomerID Bigint , @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT isnull(sum(isnull([credit],0)-isnull([debit],0)),0) FROM [Ledger] Where CustomerID ='+CONVERT(varchar, @CustomerID)+' and CONVERT(varchar ,[Date],111) < '''+ CONVERT(varchar ,@FirstDate,111)+'''' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) EXECUTE (@Query) END Go Alter Table Ledger Add EntryTime smalldatetime Go alter Table SoftwareSetting Add UpdateDaysSMS int Go Alter Table PurchaseMaster Add EntryTime smalldatetime Go Alter Table MetalSales Add EntryTime smalldatetime Go Alter Table Transactions Add EntryTime smalldatetime Go Alter Table JournalVoucher Add EntryTime smalldatetime Go Alter Table Contra Add EntryTime smalldatetime Go Alter Table DebitCreditNote Add EntryTime smalldatetime Go Create PROCEDURE [dbo].[SPGETTallySync] @BranchID Bigint, @TableName nvarchar(200), @Sync int AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' SELECT TallySyncID,TallyXML,TallyGUID,IsTallySync,TallySyncDate,TableName,TableID,TS.EntryUserName,TS.LastUpdateTime ,EnteryDate,ComputerIDAddress,Response,ISSuccess,TS.BranchID ,BM.BranchName FROM TallySync TS Left join BranchMaster BM on TS.BranchID=BM.BranchID Where 1=1 ' if(@BranchID>0) Set @Query+=' and TS.BranchID='+CONVERT(varchar,@BranchID) if(@TableName!='All') Set @Query+=' and TS.TableName='''+CONVERT(varchar,@TableName)+'''' if(@Sync=1) Set @Query+=' and ISNULL(TS.IsTallySync,0)= 1' if(@Sync=2) Set @Query+=' and ISNULL(TS.IsTallySync,0)= 0' EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETCustomerProductStatus] @CustomerID Bigint , @BranchID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select Ps.Date,Ps.BranchID,CustomerID,Narration,Debit,Credit,Ps.ProductID,Pm.ProductName From ProductStatus Ps Left Join ProductMaster PM on Ps.ProductID=Pm.ProductID Where CustomerID='+CONVERT(varchar,@CustomerID) if(@BranchID>0) Set @Query+=' and Ps.BranchID='+CONVERT(varchar,@BranchID) Set @Query+=' ORDER BY Ps.Date' --return @Query EXECUTE (@Query) END Go alter Table PurchaseMaster add trdId nvarchar(max) GO ALTER PROCEDURE [dbo].[SPGETCustomerProductStatus] @CustomerID Bigint , @BranchID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' Select Cm.CustomerName,x.BranchID,x.Buy,x.CustomerID,x.Date,x.IDMaster,x.ProductStatusID,x.Sale,x.trdId From ( Select Ps.ProductStatusID,Credit As Buy, 0 as Sale ,Date,trdId,Ps.CustomerID,Ps.BranchID,PM.PurchaseID as IDMaster From ProductStatus PS Left Join PurchaseMaster PM on Ps.ProductStatusID=Pm.ProductStatusID Where IsNull(Credit,0)>0 Union All Select Ps.ProductStatusID,0 as Buy,Debit as Sale,Date,trdId,Ps.CustomerID,Ps.BranchID,Ms.SalesID as IDMaster From ProductStatus PS Left Join MetalSales MS on Ps.ProductStatusID=MS.ProductStatusID Where IsNull(Debit,0)>0 ) as X Left Join CustomerMaster CM on x.CustomerID = Cm.CustomerID Where x.CustomerID='+CONVERT(varchar,@CustomerID) if(@BranchID>0) Set @Query+=' and x.BranchID='+CONVERT(varchar,@BranchID) Set @Query+=' ORDER BY x.Date' --return @Query EXECUTE (@Query) END Go Create TRIGGER [dbo].[AccountGroup_AUDIT] ON [dbo].[AccountGroup] FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'AccountGroup' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[AccountHead_AUDIT] ON [dbo].AccountHead FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'AccountHead' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[BankMaster_AUDIT] ON [dbo].BankMaster FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'BankMaster' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[BranchMaster_AUDIT] ON [dbo].BranchMaster FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'BranchMaster' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[BusinessVerticalMaster_AUDIT] ON [dbo].BusinessVerticalMaster FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'BusinessVerticalMaster' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[Contra_AUDIT] ON [dbo].Contra FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'Contra' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[CustomerLoginMapping_AUDIT] ON [dbo].CustomerLoginMapping FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'CustomerLoginMapping' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[CustomerMaster_AUDIT] ON [dbo].CustomerMaster FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'CustomerMaster' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[DebitCreditNote_AUDIT] ON [dbo].DebitCreditNote FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'DebitCreditNote' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[DeliveryChallan_AUDIT] ON [dbo].DeliveryChallan FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'DeliveryChallan' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[DeliveryOrder_AUDIT] ON [dbo].DeliveryOrder FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'DeliveryOrder' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[DeliveryRequest_AUDIT] ON [dbo].DeliveryRequest FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'DeliveryRequest' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[FinancialYear_AUDIT] ON [dbo].FinancialYear FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'FinancialYear' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[FTPMaster_AUDIT] ON [dbo].FTPMaster FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'FTPMaster' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[JournalVoucher_AUDIT] ON [dbo].JournalVoucher FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'JournalVoucher' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[Ledger_AUDIT] ON [dbo].Ledger FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'Ledger' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[ledgerConfiguration_AUDIT] ON [dbo].ledgerConfiguration FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'ledgerConfiguration' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[LoginMaster_AUDIT] ON [dbo].LoginMaster FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'LoginMaster' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[MetalSales_AUDIT] ON [dbo].MetalSales FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'MetalSales' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[MetalSalesUnFixEntry_AUDIT] ON [dbo].MetalSalesUnFixEntry FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'MetalSalesUnFixEntry' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[ProductMaster_AUDIT] ON [dbo].ProductMaster FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'ProductMaster' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[ProductStatus_AUDIT] ON [dbo].ProductStatus FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'ProductStatus' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[PurchaseDebitCreditNote_AUDIT] ON [dbo].PurchaseDebitCreditNote FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'PurchaseDebitCreditNote' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[PurchaseMaster_AUDIT] ON [dbo].PurchaseMaster FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'PurchaseMaster' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[SettingsScripProductMapping_AUDIT] ON [dbo].SettingsScripProductMapping FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'SettingsScripProductMapping' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[SoftwareSetting_AUDIT] ON [dbo].SoftwareSetting FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'SoftwareSetting' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[StateMaster_AUDIT] ON [dbo].StateMaster FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'StateMaster' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[SupplierBankMaster_AUDIT] ON [dbo].SupplierBankMaster FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'SupplierBankMaster' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[TallySync_AUDIT] ON [dbo].TallySync FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'TallySync' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[TaxMaster_AUDIT] ON [dbo].TaxMaster FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'TaxMaster' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[tblPincode_AUDIT] ON [dbo].tblPincode FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'tblPincode' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[Transactions_AUDIT] ON [dbo].Transactions FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'Transactions' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[ValueDate_AUDIT] ON [dbo].ValueDate FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'ValueDate' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[VoucherSetting_AUDIT] ON [dbo].VoucherSetting FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'VoucherSetting' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END Go Create TRIGGER [dbo].[WebLoginMaster_AUDIT] ON [dbo].WebLoginMaster FOR UPDATE AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'WebLoginMaster' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END GO CREATE TABLE [dbo].[Configuration]( [ID] [int] IDENTITY(1,1) NOT NULL, [UserName] [nvarchar](500) NULL, [FormName] [nvarchar](500) NULL, [Keys] [nvarchar](500) NULL, [Value] [nvarchar](500) NULL, [LastUpdateTime] [datetime] NULL, CONSTRAINT [PK_Configuration] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO GO ALTER PROCEDURE [dbo].[SPGetOpeningBalance] @FirstDate Datetime, @CustomerID Bigint , @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT isnull(sum(isnull([credit],0)-isnull([debit],0)),0) FROM [Ledger] Where CustomerID ='+CONVERT(varchar, @CustomerID)+' and CONVERT(varchar ,[Date],111) <= '''+ CONVERT(varchar ,@FirstDate,111)+'''' if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) EXECUTE (@Query) END Go Alter Table BranchMaster add TallyCompanyName nvarchar(max) Go alter Table ledgerConfiguration Add VoucharTypeName nvarchar(1000) GO ALTER PROCEDURE [dbo].[SPGetOpeningBalance] @FirstDate Datetime, @CustomerID Bigint , @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT isnull(sum(isnull([credit],0)-isnull([debit],0)),0) FROM [Ledger] Where CustomerID ='+CONVERT(varchar, @CustomerID)+' and CONVERT(varchar ,[Date],111) <= '''+ CONVERT(varchar ,@FirstDate,111)+'''' Set @Query+=' and Particulars!=''Opening Balance'' '; if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGetOpeningBalanceForLadger] @FirstDate Datetime, @CustomerID Bigint , @BranchID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT isnull(sum(isnull([credit],0)-isnull([debit],0)),0) FROM [Ledger] Where CustomerID ='+CONVERT(varchar, @CustomerID)+'' Set @Query+=' and Particulars=''Opening Balance'' '; if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) EXECUTE (@Query) END Go GO ALTER PROCEDURE [dbo].[SPGETCustomerLedger] @FirstDate Datetime, @ToDate Datetime, @CustomerID Bigint , @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT Ledger.VoucherNo, Ledger.Date, CustomerMaster.CustomerName, Ledger.Narration, Ledger.Particulars, Ledger.Debit, Ledger.Credit, Ledger.FinalBalance,Ledger.VoucherType,Ledger.VoucherID,'''' as FinalBalanceString FROM Ledger INNER JOIN CustomerMaster ON Ledger.CustomerID = CustomerMaster.CustomerID Where (Ledger.CustomerID ='+CONVERT(varchar, @CustomerID)+') AND (Ledger.Date >='''+ CONVERT(varchar ,@FirstDate,111)+''') AND (Ledger.Date <='''+ CONVERT(varchar ,@ToDate,111)+''' ) AND (ISNULL(Ledger.Debit, 0) + ISNULL(Ledger.Credit, 0) <> 0)' Set @Query+=' and Ledger.Particulars!=''Opening Balance'' '; if(@BranchID>0) Set @Query+=' and Ledger.BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and Ledger.BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) Set @Query+=' ORDER BY Ledger.Date, Ledger.VoucherNo' --return @Query EXECUTE (@Query) END GO ALTER PROCEDURE [dbo].[SPGetOpeningBalance] @FirstDate Datetime, @CustomerID Bigint , @BranchID Bigint, @BusinessVerticalID Bigint AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT isnull(sum(isnull([credit],0)-isnull([debit],0)),0) FROM [Ledger] Where CustomerID ='+CONVERT(varchar, @CustomerID)+' and CONVERT(varchar ,[Date],111) < '''+ CONVERT(varchar ,@FirstDate,111)+'''' Set @Query+=' and Particulars!=''Opening Balance'' '; if(@BranchID>0) Set @Query+=' and BranchID='+CONVERT(varchar,@BranchID) if(@BusinessVerticalID>0) Set @Query+=' and BusinessVerticalID='+CONVERT(varchar,@BusinessVerticalID) EXECUTE (@Query) END GO Create PROC [dbo].[GetDynamicSequenceforInvoiceNo2](@TableName NVARCHAR(50)) AS BEGIN DECLARE @SQLSelectQuery NVARCHAR(MAX)='' SET @SQLSelectQuery = 'SELECT NEXT VALUE FOR ' + @TableName +' AS VoucherID ' IF ( EXISTS( SELECT * FROM sys.sequences WHERE name = @TableName)) BEGIN exec(@SQLSelectQuery) END else BEGIN exec('CREATE SEQUENCE '+ @TableName+' START WITH 1 INCREMENT BY 1') exec(@SQLSelectQuery) END END GO Create PROC [dbo].[SetDefaultDynamicSequenceforInvoiceNo2](@TableName NVARCHAR(50)) AS BEGIN DECLARE @SQLSelectQuery NVARCHAR(MAX)='' SET @SQLSelectQuery = 'ALTER SEQUENCE ' + @TableName +' INCREMENT BY 1' IF ( EXISTS( SELECT * FROM sys.sequences WHERE name = @TableName)) BEGIN exec(@SQLSelectQuery) END else BEGIN exec('CREATE SEQUENCE '+ @TableName+' START WITH 1 INCREMENT BY 1') exec(@SQLSelectQuery) END END GO Create PROC [dbo].[SetDynamicSequenceforInvoiceNo2](@TableName NVARCHAR(50),@Startno int) AS BEGIN DECLARE @SQLSelectQuery NVARCHAR(MAX)='' SET @SQLSelectQuery = 'ALTER SEQUENCE ' + @TableName +' START WITH '+CONVERT(nvarchar, @Startno) IF ( EXISTS( SELECT * FROM sys.sequences WHERE name = @TableName)) BEGIN exec(@SQLSelectQuery) END else BEGIN exec('CREATE SEQUENCE '+ @TableName+' START WITH 1 INCREMENT BY 1') exec(@SQLSelectQuery) END END GO Create PROCEDURE [dbo].[SPGetColumnNameByView2] @ViewCustomerMaster varchar(max) AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('+@ViewCustomerMaster+') ' EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETExpensesMountWise2] @FromDate datetime, @ToDate datetime AS BEGIN DECLARE @Pivot_Column [nvarchar](max); SELECT @Pivot_Column= COALESCE(@Pivot_Column+',','')+ QUOTENAME(MonthName1) FROM (SELECT DISTINCT datename(month, Date) as MonthName1 FROM Ledger)Tab DECLARE @Query varchar(max)='' Set @Query='Select CustomerID,CustomerName ,'+@Pivot_Column+' From (Select CustomerID,CustomerName,MonthName1,Sum(x.Amount) as Amount From (Select cm.CustomerID,cm.CustomerName,ABS(isnull(l.Credit,0)-ISNULL(l.Debit,0)) as Amount,datename(month, l.Date) as MonthName1 From (Select CustomerID,CustomerName from CustomerMaster Where AccountGroupID in (Select AccountGroupID From AccountGroup Where AccountGroupName like ''%expenses%'' or GrandParentAccountGroupID in (Select AccountGroupID From AccountGroup Where AccountGroupName like ''%expenses%''))) as CM inner Join Ledger as l on cm.CustomerID=l.CustomerID Where 1=1 and Convert(varchar, l.Date,111)>='''+ CONVERT(varchar ,@FromDate,111)+''' and Convert(varchar, l.Date,111)<='''+ CONVERT(varchar ,@ToDate,111)+''' )as x Group by CustomerID,CustomerName,MonthName1) Y PIVOT ( SUM(Amount) FOR MonthName1 IN ('+@Pivot_Column+')) AS Tab2 ' --return (@Query) EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGETTallySync2] @BranchID Bigint, @TableName nvarchar(200), @Sync int AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' SELECT TallySyncID,TallyXML,TallyGUID,IsTallySync,TallySyncDate,TableName,TableID,TS.EntryUserName,TS.LastUpdateTime ,EnteryDate,ComputerIDAddress,Response,ISSuccess,TS.BranchID ,BM.BranchName FROM TallySync TS Left join BranchMaster BM on TS.BranchID=BM.BranchID Where 1=1 ' if(@BranchID>0) Set @Query+=' and TS.BranchID='+CONVERT(varchar,@BranchID) if(@TableName!='All') Set @Query+=' and TS.TableName='''+CONVERT(varchar,@TableName)+'''' if(@Sync=1) Set @Query+=' and ISNULL(TS.IsTallySync,0)= 1' if(@Sync=2) Set @Query+=' and ISNULL(TS.IsTallySync,0)= 0' EXECUTE (@Query) END GO Create PROCEDURE [dbo].[SPGetViewData2] @ViewName varchar(max) AS BEGIN DECLARE @Query varchar(max)='' Set @Query='SELECT * FROM '+ @ViewName EXECUTE (@Query) END GO CREATE TABLE [dbo].[LedgerComment]( [ID] [int] IDENTITY(1,1) NOT NULL, [VoucherNo] [bigint] NULL, [CustomerID] [bigint] NULL, [IsRow] [bit] NULL, [Comment] [nvarchar](max) NULL, [FilePath] [nvarchar](max) NULL, [EntryDate] [datetime] NULL, [LastUpdateDate] [datetime] NULL, [EntryUserName] [nvarchar](500) NULL, CONSTRAINT [PK_LedgerComment] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO ALTER PROC [dbo].[SetDynamicSequenceforInvoiceNo2](@TableName NVARCHAR(50),@Startno int) AS BEGIN DECLARE @SQLSelectQuery NVARCHAR(MAX)='' SET @SQLSelectQuery = 'ALTER SEQUENCE ' + @TableName +' RESTART WITH '+ CONVERT(nvarchar, @Startno) IF ( EXISTS( SELECT * FROM sys.sequences WHERE name = @TableName)) BEGIN exec(@SQLSelectQuery) END else BEGIN exec('CREATE SEQUENCE '+ @TableName+' START WITH 1 INCREMENT BY 1') exec(@SQLSelectQuery) END END GO Alter Table MetalSales Add JournalVoucherID bigint GO CREATE TABLE [dbo].[DeliveryReceiptNote]( [DeliveryReceiptNoteID] [bigint] IDENTITY(1,1) NOT NULL, [SupplierID] [bigint] NULL, [DeliveryReceiptNoteDate] [smalldatetime] NOT NULL, [NoOfPieces] [money] NULL, [Quantity] [money] NOT NULL, [Rate] [money] NULL, [Value] [money] NULL, [VATAmount] [money] NULL, [InvoiceNo] [nvarchar](max) NULL, [CreditDebit] [nvarchar](max) NULL, [ProductID] [bigint] NULL, [BranchID] [bigint] NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, [Extra1] [nvarchar](max) NULL, [Extra2] [nvarchar](max) NULL, [Extra3] [nvarchar](max) NULL, [Extra4] [nvarchar](max) NULL, [SupplierName] [nvarchar](max) NULL, [ConnectedDeliveryReceiptNoteID] [bigint] NULL, [LedgerVoucherNo] [bigint] NULL, [ProductStatusID] [bigint] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TCS] [money] NULL, [TDSCreditVoucherNo] [bigint] NULL, [TDSDebitVoucherNo] [bigint] NULL, [TaxType] [nvarchar](max) NULL, [TotalAmount] [money] NULL, [SGSTVoucherNo] [int] NULL, [CGSTVoucherNo] [int] NULL, [IGSTVoucherNo] [int] NULL, [PurcherBookVoucherNo] [int] NULL, [TCSCreditVoucherNo] [int] NULL, [TCSDebitVoucherNo] [int] NULL, [VoucherID] [bigint] NULL, [DeliveryReceiptNoteLedgerID] [bigint] NULL, [TallyGUID] [nvarchar](max) NULL, [IsTallySync] [nvarchar](10) NULL, [TallySyncDate] [datetime] NULL, [TDS] [money] NULL, [BarNo] [varchar](2000) NULL, [InwardDate] [datetime] NULL, [BusinessVerticalID] [int] NULL, [EntryTime] [smalldatetime] NULL, [trdId] [nvarchar](max) NULL, CONSTRAINT [PK_DeliveryReceiptNote] PRIMARY KEY CLUSTERED ( [DeliveryReceiptNoteID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[DeliveryReceiptNote] WITH CHECK ADD CONSTRAINT [FK_DeliveryReceiptNote_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO ALTER TABLE [dbo].[DeliveryReceiptNote] CHECK CONSTRAINT [FK_DeliveryReceiptNote_BranchMaster] GO ALTER TABLE [dbo].[DeliveryReceiptNote] WITH CHECK ADD CONSTRAINT [FK_DeliveryReceiptNote_CustomerMaster] FOREIGN KEY([SupplierID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[DeliveryReceiptNote] CHECK CONSTRAINT [FK_DeliveryReceiptNote_CustomerMaster] GO ALTER TABLE [dbo].[DeliveryReceiptNote] WITH CHECK ADD CONSTRAINT [FK_DeliveryReceiptNote_Ledger] FOREIGN KEY([LedgerVoucherNo]) REFERENCES [dbo].[Ledger] ([VoucherNo]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[DeliveryReceiptNote] CHECK CONSTRAINT [FK_DeliveryReceiptNote_Ledger] GO ALTER TABLE [dbo].[DeliveryReceiptNote] WITH CHECK ADD CONSTRAINT [FK_DeliveryReceiptNote_ProductMaster] FOREIGN KEY([ProductID]) REFERENCES [dbo].[ProductMaster] ([ProductID]) GO ALTER TABLE [dbo].[DeliveryReceiptNote] CHECK CONSTRAINT [FK_DeliveryReceiptNote_ProductMaster] GO ALTER TABLE [dbo].[DeliveryReceiptNote] WITH CHECK ADD CONSTRAINT [FK_DeliveryReceiptNote_ProductStatus] FOREIGN KEY([ProductStatusID]) REFERENCES [dbo].[ProductStatus] ([ProductStatusID]) GO ALTER TABLE [dbo].[DeliveryReceiptNote] CHECK CONSTRAINT [FK_DeliveryReceiptNote_ProductStatus] GO ALTER TABLE [dbo].[DeliveryReceiptNote] WITH CHECK ADD CONSTRAINT [FK_DeliveryReceiptNote_DeliveryReceiptNote] FOREIGN KEY([ConnectedDeliveryReceiptNoteID]) REFERENCES [dbo].[DeliveryReceiptNote] ([DeliveryReceiptNoteID]) GO ALTER TABLE [dbo].[DeliveryReceiptNote] CHECK CONSTRAINT [FK_DeliveryReceiptNote_DeliveryReceiptNote] GO Alter Table PurchaseMaster add DeliveryReceiptNoteID bigint Go Alter Table DeliveryChallan add ReceiverPerson nvarchar(max) Go Alter Table DeliveryChallan add ReceiverMobileNo nvarchar(max) Go Alter Table DeliveryChallan add ISClientConfirmation bit Go ALter Table CustomerMaster Add ConnectedBranchID bigint Go Alter Table MetalSales add AckNo nvarchar(2000) Go Alter Table MetalSales add AckDt datetime Go GO CREATE TABLE [dbo].[BranchConnectedLedger]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [TableID] [bigint] NULL, [TableName] [nvarchar](500) NULL, [ISApproval] [bit] NULL, [FromBranchID] [bigint] NULL, [ToBranchID] [bigint] NULL, [EntryUserName] [nchar](200) NULL, [LastUpdateTime] [smalldatetime] NULL, [EntryTime] [smalldatetime] NULL, CONSTRAINT [PK_BranchConnected] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO alter table BranchConnectedLedger add BankLedgerID bigint GO alter Table SMSMessageMaster Add SMSType nvarchar(max) GO CREATE TABLE [dbo].[ProductGroup]( [ProductGroupID] [int] IDENTITY(1,1) NOT NULL, [ProductGroupName] [nvarchar](max) NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, [EntryTime] [smalldatetime] NULL, CONSTRAINT [PK_ProductGroup] PRIMARY KEY CLUSTERED ( [ProductGroupID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO Alter Table ProductMaster Add ProductGroupID bigint GO CREATE TABLE [dbo].[CustomerOpeningMaster]( [ID] [int] IDENTITY(1,1) NOT NULL, [ProductGroupID] [int] NULL, [CustomerID] [bigint] NULL, [Qty] [money] NULL, [CRDR] [nvarchar](50) NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, CONSTRAINT [PK_CustomerOpeningMaster] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO CREATE TABLE [dbo].[PackageMaster]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [PackageName] [nvarchar](max) NULL, [Details] [nvarchar](max) NULL, [EntryUsername] [nvarchar](1000) NULL, [LastUpdateTime] [smalldatetime] NULL, CONSTRAINT [PK_PackageMaster] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO Alter Table CustomerMaster Add PackageID bigint GO CREATE TABLE [dbo].[DomailList]( [id] [bigint] NOT NULL, [domain_name] [nvarchar](max) NULL, [auth_key] [nvarchar](max) NULL, [status_id] [nvarchar](max) NULL, [period] [nvarchar](max) NULL, [start_date] [nvarchar](max) NULL, [expiry_date] [nvarchar](max) NULL, [customer_id] [nvarchar](max) NULL, [registrant_id] [nvarchar](max) NULL, [admin_contact_id] [nvarchar](max) NULL, [billing_contact_id] [nvarchar](max) NULL, [tech_contact_id] [nvarchar](max) NULL, [name_servers] [nvarchar](max) NULL, [is_locked] [nvarchar](max) NULL, [privacy] [nvarchar](max) NULL, [eligibility_data] [nvarchar](max) NULL, [MainJson] [nvarchar](max) NULL, CONSTRAINT [PK_DomailList] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO CREATE TABLE [dbo].[SubDomainList]( [ID] [bigint] NOT NULL, [DomainID] [bigint] NULL, [type] [nvarchar](max) NULL, [subdomain] [nvarchar](max) NULL, [contentsubdomain] [nvarchar](max) NULL, [MainJson] [nvarchar](max) NULL, CONSTRAINT [PK_SubDomainList] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO CREATE TABLE [dbo].[PurchaseDetails]( [ID] [int] IDENTITY(1,1) NOT NULL, [PurchaseID] [bigint] NULL, [ProductID] [bigint] NULL, [Qty] [money] NULL, [Rate] [money] NULL, [Value] [money] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TotalAmount] [money] NULL, [GST] [money] NULL, [ProductStatusID] [bigint] NULL, [VoucherID] [bigint] NULL, CONSTRAINT [PK_PurchaseDetails] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO Alter Table DomailList Add ResponseTime Time GO CREATE TABLE [dbo].[AWSServer]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [ServerName] [nvarchar](max) NULL, [TagsKey] [nvarchar](max) NULL, [TagsValue] [nvarchar](max) NULL, [PrivateIpAddress] [nvarchar](max) NULL, [PublicIpAddress] [nvarchar](max) NULL, [ServerUserName] [nvarchar](max) NULL, [SSHKeyName] [nvarchar](max) NULL, [MainJson] [nvarchar](max) NULL, [EntryTime] [datetime] NULL, [LastUpdateTime] [datetime] NULL, CONSTRAINT [PK_AWSServer] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO Alter Table CustomerMaster Add RemoteUserName nvarchar(max) GO CREATE TABLE [dbo].[PurchaseMasterMCX]( [PurchaseIDMCX] [bigint] IDENTITY(1,1) NOT NULL, [SupplierID] [bigint] NULL, [PurchaseDate] [smalldatetime] NOT NULL, [NoOfPieces] [money] NULL, [Quantity] [money] NOT NULL, [Rate] [money] NULL, [Value] [money] NULL, [VATAmount] [money] NULL, [InvoiceNo] [nvarchar](max) NULL, [CreditDebit] [nvarchar](max) NULL, [ProductID] [bigint] NULL, [BranchID] [bigint] NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, [Extra1] [nvarchar](max) NULL, [Extra2] [nvarchar](max) NULL, [Extra3] [nvarchar](max) NULL, [Extra4] [nvarchar](max) NULL, [SupplierName] [nvarchar](max) NULL, [ConnectedPurchaseIDMCX] [bigint] NULL, [LedgerVoucherNo] [bigint] NULL, [ProductStatusID] [bigint] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TCS] [money] NULL, [TDSCreditVoucherNo] [bigint] NULL, [TDSDebitVoucherNo] [bigint] NULL, [TaxType] [nvarchar](max) NULL, [TotalAmount] [money] NULL, [SGSTVoucherNo] [int] NULL, [CGSTVoucherNo] [int] NULL, [IGSTVoucherNo] [int] NULL, [PurcherBookVoucherNo] [int] NULL, [TCSCreditVoucherNo] [int] NULL, [TCSDebitVoucherNo] [int] NULL, [VoucherID] [bigint] NULL, [PurchaseLedgerID] [bigint] NULL, [TallyGUID] [nvarchar](max) NULL, [IsTallySync] [nvarchar](10) NULL, [TallySyncDate] [datetime] NULL, [TDS] [money] NULL, [BarNo] [varchar](2000) NULL, [InwardDate] [datetime] NULL, [BusinessVerticalID] [int] NULL, [EntryTime] [smalldatetime] NULL, [trdId] [nvarchar](max) NULL, [DeliveryReceiptNoteID] [bigint] NULL, CONSTRAINT [PK_PurchaseMasterMCX] PRIMARY KEY CLUSTERED ( [PurchaseIDMCX] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[PurchaseMasterMCX] WITH CHECK ADD CONSTRAINT [FK_PurchaseMasterMCX_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO ALTER TABLE [dbo].[PurchaseMasterMCX] CHECK CONSTRAINT [FK_PurchaseMasterMCX_BranchMaster] GO ALTER TABLE [dbo].[PurchaseMasterMCX] WITH CHECK ADD CONSTRAINT [FK_PurchaseMasterMCX_CustomerMaster] FOREIGN KEY([SupplierID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[PurchaseMasterMCX] CHECK CONSTRAINT [FK_PurchaseMasterMCX_CustomerMaster] GO ALTER TABLE [dbo].[PurchaseMasterMCX] WITH CHECK ADD CONSTRAINT [FK_PurchaseMasterMCX_Ledger] FOREIGN KEY([LedgerVoucherNo]) REFERENCES [dbo].[Ledger] ([VoucherNo]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[PurchaseMasterMCX] CHECK CONSTRAINT [FK_PurchaseMasterMCX_Ledger] GO ALTER TABLE [dbo].[PurchaseMasterMCX] WITH CHECK ADD CONSTRAINT [FK_PurchaseMasterMCX_ProductMaster] FOREIGN KEY([ProductID]) REFERENCES [dbo].[ProductMaster] ([ProductID]) GO ALTER TABLE [dbo].[PurchaseMasterMCX] CHECK CONSTRAINT [FK_PurchaseMasterMCX_ProductMaster] GO ALTER TABLE [dbo].[PurchaseMasterMCX] WITH CHECK ADD CONSTRAINT [FK_PurchaseMasterMCX_ProductStatus] FOREIGN KEY([ProductStatusID]) REFERENCES [dbo].[ProductStatus] ([ProductStatusID]) GO ALTER TABLE [dbo].[PurchaseMasterMCX] CHECK CONSTRAINT [FK_PurchaseMasterMCX_ProductStatus] GO ALTER TABLE [dbo].[PurchaseMasterMCX] WITH CHECK ADD CONSTRAINT [FK_PurchaseMasterMCX_PurchaseMasterMCX] FOREIGN KEY([ConnectedPurchaseIDMCX]) REFERENCES [dbo].[PurchaseMasterMCX] ([PurchaseIDMCX]) GO ALTER TABLE [dbo].[PurchaseMasterMCX] CHECK CONSTRAINT [FK_PurchaseMasterMCX_PurchaseMasterMCX] GO GO CREATE TABLE [dbo].[PurchaseDetailsMCX]( [ID] [int] IDENTITY(1,1) NOT NULL, [PurchaseMCXID] [bigint] NULL, [ProductID] [bigint] NULL, [Qty] [money] NULL, [Rate] [money] NULL, [Value] [money] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TotalAmount] [money] NULL, [GST] [money] NULL, [ProductStatusID] [bigint] NULL, [VoucherID] [bigint] NULL, CONSTRAINT [PK_PurchaseDetailsMCX] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO GO CREATE TABLE [dbo].[MetalSalesMCX]( [SalesMCXID] [bigint] IDENTITY(1,1) NOT NULL, [CustomerID] [bigint] NULL, [SalesDate] [smalldatetime] NULL, [PaymentType] [nvarchar](max) NULL, [Pieces] [money] NULL, [Quantity] [money] NULL, [Rate] [money] NULL, [Value] [money] NULL, [VAT] [money] NULL, [Total] [money] NULL, [ProductID] [bigint] NULL, [CustomerName] [nvarchar](max) NULL, [Address] [nvarchar](max) NULL, [Remarks] [nvarchar](max) NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, [Extra1] [nvarchar](max) NULL, [Extra2] [nvarchar](max) NULL, [Extra3] [nvarchar](max) NULL, [Extra4] [nvarchar](max) NULL, [ProductStatusID] [bigint] NULL, [BranchID] [bigint] NULL, [LedgerVoucherNo] [bigint] NULL, [TransactionThrough] [nvarchar](max) NULL, [InvoiceNo] [nvarchar](50) NULL, [isUnFix] [bit] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [ModeOfDelivery] [nvarchar](1000) NULL, [Discount] [money] NULL, [ReverseChargeYN] [nvarchar](1000) NULL, [BLOCKAmountLedgerVoucherNo] [bigint] NULL, [OwnBranchTransferPurchaseID] [bigint] NULL, [DeliveryCharges] [money] NULL, [RoundOff] [money] NULL, [DeliveryCustomerID] [bigint] NULL, [SuppliersRef] [nvarchar](max) NULL, [OtherRef] [nvarchar](max) NULL, [Purity] [nvarchar](max) NULL, [TCS] [money] NULL, [trdId] [nvarchar](max) NULL, [TDSCreditVoucherNo] [bigint] NULL, [TDSDebitVoucherNo] [bigint] NULL, [TaxType] [nvarchar](max) NULL, [TDSAmount] [money] NULL, [SaleBookVoucherNo] [bigint] NULL, [blockLedgerCreditVoucherNo] [bigint] NULL, [TCSCreditVoucherNo] [bigint] NULL, [TCSDebitVoucherNo] [bigint] NULL, [SGSTVoucherNo] [bigint] NULL, [CGSTVoucherNo] [bigint] NULL, [IGSTVoucherNo] [bigint] NULL, [DeliveryChargesVoucherNo] [bigint] NULL, [RoundOffVoucherNo] [bigint] NULL, [VoucherID] [bigint] NULL, [SaleLedgerID] [bigint] NULL, [TallyGUID] [nvarchar](max) NULL, [IsTallySync] [nvarchar](10) NULL, [TallySyncDate] [datetime] NULL, [TradeRate] [bigint] NULL, [DeliveryChargesIncludingTotalAmount] [money] NULL, [RateWithoutGST] [money] NULL, [ISTCSTDSRoundOff] [bit] NULL, [ISTotalAmountWithTCS] [bit] NULL, [BusinessVerticalID] [int] NULL, [Narration] [nvarchar](max) NULL, [EntryTime] [smalldatetime] NULL, [JournalVoucherID] [bigint] NULL, [AckNo] [nvarchar](2000) NULL, [AckDt] [datetime] NULL, CONSTRAINT [PK_MetalSalesMCX] PRIMARY KEY CLUSTERED ( [SalesMCXID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[MetalSalesMCX] WITH CHECK ADD CONSTRAINT [FK_MetalSalesMCX_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO ALTER TABLE [dbo].[MetalSalesMCX] CHECK CONSTRAINT [FK_MetalSalesMCX_BranchMaster] GO ALTER TABLE [dbo].[MetalSalesMCX] WITH CHECK ADD CONSTRAINT [FK_MetalSalesMCX_CustomerMaster] FOREIGN KEY([CustomerID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[MetalSalesMCX] CHECK CONSTRAINT [FK_MetalSalesMCX_CustomerMaster] GO ALTER TABLE [dbo].[MetalSalesMCX] WITH CHECK ADD CONSTRAINT [FK_MetalSalesMCX_CustomerMaster1] FOREIGN KEY([DeliveryCustomerID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[MetalSalesMCX] CHECK CONSTRAINT [FK_MetalSalesMCX_CustomerMaster1] GO ALTER TABLE [dbo].[MetalSalesMCX] WITH CHECK ADD CONSTRAINT [FK_MetalSalesMCX_Ledger] FOREIGN KEY([LedgerVoucherNo]) REFERENCES [dbo].[Ledger] ([VoucherNo]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[MetalSalesMCX] CHECK CONSTRAINT [FK_MetalSalesMCX_Ledger] GO ALTER TABLE [dbo].[MetalSalesMCX] WITH CHECK ADD CONSTRAINT [FK_MetalSalesMCX_ProductMaster] FOREIGN KEY([ProductID]) REFERENCES [dbo].[ProductMaster] ([ProductID]) GO ALTER TABLE [dbo].[MetalSalesMCX] CHECK CONSTRAINT [FK_MetalSalesMCX_ProductMaster] GO ALTER TABLE [dbo].[MetalSalesMCX] WITH CHECK ADD CONSTRAINT [FK_MetalSalesMCX_ProductStatus] FOREIGN KEY([ProductStatusID]) REFERENCES [dbo].[ProductStatus] ([ProductStatusID]) GO ALTER TABLE [dbo].[MetalSalesMCX] CHECK CONSTRAINT [FK_MetalSalesMCX_ProductStatus] GO ALTER TABLE [dbo].[MetalSalesMCX] WITH CHECK ADD CONSTRAINT [FK_MetalSalesMCX_PurchaseMaster] FOREIGN KEY([OwnBranchTransferPurchaseID]) REFERENCES [dbo].[PurchaseMaster] ([PurchaseID]) GO ALTER TABLE [dbo].[MetalSalesMCX] CHECK CONSTRAINT [FK_MetalSalesMCX_PurchaseMaster] GO Alter Table MetalSalesMCX Add GSTPer int Go Alter Table BranchMaster add RemoteUserName nvarchar(max) GO ALter Table LoginMaster add EmailIDs Nvarchar(Max) GO CREATE TABLE [dbo].[VoucharAdjust]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [VoucharDate] [datetime] NULL, [VoucharType] [nvarchar](100) NULL, [VoucharDetail] [nvarchar](1000) NULL, [VoucharNumber] [nvarchar](1000) NULL, [Amount] [money] NULL, [SettledAmount] [money] NULL, [AdjustAmount] [money] NULL, [DueAmount] [money] NULL, [VoucharID] [bigint] NULL, [EntryDate] [datetime] NULL, [EntryUserName] [nvarchar](500) NULL, [LastUpdateDate] [datetime] NULL, CONSTRAINT [PK_VoucharAdjust] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO Alter Table VoucharAdjust Add CustomerID bigint Go Alter Table DebitCreditNote add OtherRefNo nvarchar(max) Go Alter Table DebitCreditNote add OtherRefNoDate datetime Go GO CREATE TABLE [dbo].[ClientToClientTransfer]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [ProductID] [bigint] NULL, [CrAccountID] [bigint] NULL, [DrAccountID] [bigint] NULL, [BranchID] [bigint] NULL, [VoucharDate] [datetime] NULL, [Weight] [money] NULL, [Narration] [nvarchar](max) NULL, [BusinessVerticalID] [bigint] NULL, [EntryUserName] [nvarchar](50) NULL, [EntryDatetime] [datetime] NULL, [LastUpdateDateTime] [datetime] NULL, CONSTRAINT [PK_ClientToClientTransfer] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE CustomerMaster ALTER COLUMN CustomerName nvarchar(300) GO ALTER TABLE CustomerMaster ALTER COLUMN NickName nvarchar(300) Go CREATE UNIQUE NONCLUSTERED INDEX [IX_CustomerMaster] ON [dbo].[CustomerMaster] ( [BranchID] ASC, [CustomerName] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO SET ANSI_PADDING ON GO CREATE UNIQUE NONCLUSTERED INDEX [IX_CustomerMaster_1] ON [dbo].[CustomerMaster] ( [BranchID] ASC, [NickName] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO SET ANSI_PADDING ON GO Alter Table MetalSalesUnFixEntry Add BlockAmount Money GO Alter Table DebitCreditNote Add Quantity money Go Alter Table DebitCreditNote Add Extra1 nvarchar(max) Go Alter Table DebitCreditNote Add Extra2 nvarchar(max) Go Alter Table DebitCreditNote Add Extra3 nvarchar(max) Go Alter Table DebitCreditNote Add AckNo nvarchar(max) GO Alter Table DebitCreditNote Add AckDt nvarchar(max) GO Alter Table MetalSales Add DeliveryChargesCGSTVoucharNo bigint GO Alter Table MetalSales Add DeliveryChargesSGSTVoucharNo bigint GO Alter Table MetalSales Add DeliveryChargesIGSTVoucharNo bigint GO CREATE TABLE [dbo].[HDFCRequestJson]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [AlertSequenceNo] [nvarchar](2000) NULL, [RemitterName] [nvarchar](2000) NULL, [RemitterAccount] [nvarchar](2000) NULL, [RemitterBank] [nvarchar](2000) NULL, [DebitCredit] [nvarchar](2000) NULL, [UserReferenceNumber] [nvarchar](2000) NULL, [BenefDetails2] [nvarchar](2000) NULL, [Amount] [nvarchar](2000) NULL, [MnemonicCode] [nvarchar](2000) NULL, [TransactionDate] [nvarchar](2000) NULL, [EntryDateTime] [datetime] NULL, [json] [nvarchar](max) NULL, [VirtualAccount] [nvarchar](2000) NULL, [Accountnumber] [nvarchar](2000) NULL, [RemitterIFSC] [nvarchar](2000) NULL, [ValueDate] [nvarchar](2000) NULL, [TransactionDescription] [nvarchar](4000) NULL, CONSTRAINT [PK_HDFCRequestJson] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO Alter Table MetalSales Add DeliveryChargesCGST money GO Alter Table MetalSales Add DeliveryChargesSGST money GO Alter Table MetalSales Add DeliveryChargesIGST money GO Alter Table Ledger Add UserReferenceNumber nvarchar(max) Go Alter Table BranchMaster Add BankID bigint Go Alter Table VoucherSetting Add Prefix nvarchar(max) Go Alter Table PurchaseMaster Add RoundOff money Go Alter Table PurchaseMaster Add RoundOffVoucherNo bigint GO CREATE TABLE [dbo].[PurchaseMasterUnfix]( [PurchaseID] [bigint] IDENTITY(1,1) NOT NULL, [SupplierID] [bigint] NULL, [PurchaseDate] [smalldatetime] NOT NULL, [NoOfPieces] [money] NULL, [Quantity] [money] NOT NULL, [Rate] [money] NULL, [Value] [money] NULL, [VATAmount] [money] NULL, [InvoiceNo] [nvarchar](max) NULL, [CreditDebit] [nvarchar](max) NULL, [ProductID] [bigint] NULL, [BranchID] [bigint] NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, [Extra1] [nvarchar](max) NULL, [Extra2] [nvarchar](max) NULL, [Extra3] [nvarchar](max) NULL, [Extra4] [nvarchar](max) NULL, [SupplierName] [nvarchar](max) NULL, [ConnectedPurchaseID] [bigint] NULL, [LedgerVoucherNo] [bigint] NULL, [ProductStatusID] [bigint] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TCS] [money] NULL, [TDSCreditVoucherNo] [bigint] NULL, [TDSDebitVoucherNo] [bigint] NULL, [TaxType] [nvarchar](max) NULL, [TotalAmount] [money] NULL, [SGSTVoucherNo] [int] NULL, [CGSTVoucherNo] [int] NULL, [IGSTVoucherNo] [int] NULL, [PurcherBookVoucherNo] [int] NULL, [TCSCreditVoucherNo] [int] NULL, [TCSDebitVoucherNo] [int] NULL, [VoucherID] [bigint] NULL, [PurchaseLedgerID] [bigint] NULL, [TallyGUID] [nvarchar](max) NULL, [IsTallySync] [nvarchar](10) NULL, [TallySyncDate] [datetime] NULL, [TDS] [money] NULL, [BarNo] [varchar](2000) NULL, [InwardDate] [datetime] NULL, [BusinessVerticalID] [int] NULL, [EntryTime] [smalldatetime] NULL, [trdId] [nvarchar](max) NULL, [DeliveryReceiptNoteID] [bigint] NULL, [RoundOff] [money] NULL, [RoundOffVoucherNo] [bigint] NULL, CONSTRAINT [PK_PurchaseMasterUnfix] PRIMARY KEY CLUSTERED ( [PurchaseID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[PurchaseMasterUnfix] WITH CHECK ADD CONSTRAINT [FK_PurchaseMasterUnfix_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO ALTER TABLE [dbo].[PurchaseMasterUnfix] CHECK CONSTRAINT [FK_PurchaseMasterUnfix_BranchMaster] GO ALTER TABLE [dbo].[PurchaseMasterUnfix] WITH CHECK ADD CONSTRAINT [FK_PurchaseMasterUnfix_CustomerMaster] FOREIGN KEY([SupplierID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[PurchaseMasterUnfix] CHECK CONSTRAINT [FK_PurchaseMasterUnfix_CustomerMaster] GO ALTER TABLE [dbo].[PurchaseMasterUnfix] WITH CHECK ADD CONSTRAINT [FK_PurchaseMasterUnfix_Ledger] FOREIGN KEY([LedgerVoucherNo]) REFERENCES [dbo].[Ledger] ([VoucherNo]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[PurchaseMasterUnfix] CHECK CONSTRAINT [FK_PurchaseMasterUnfix_Ledger] GO ALTER TABLE [dbo].[PurchaseMasterUnfix] WITH CHECK ADD CONSTRAINT [FK_PurchaseMasterUnfix_ProductMaster] FOREIGN KEY([ProductID]) REFERENCES [dbo].[ProductMaster] ([ProductID]) GO ALTER TABLE [dbo].[PurchaseMasterUnfix] CHECK CONSTRAINT [FK_PurchaseMasterUnfix_ProductMaster] GO ALTER TABLE [dbo].[PurchaseMasterUnfix] WITH CHECK ADD CONSTRAINT [FK_PurchaseMasterUnfix_ProductStatus] FOREIGN KEY([ProductStatusID]) REFERENCES [dbo].[ProductStatus] ([ProductStatusID]) GO ALTER TABLE [dbo].[PurchaseMasterUnfix] CHECK CONSTRAINT [FK_PurchaseMasterUnfix_ProductStatus] GO ALTER TABLE [dbo].[PurchaseMasterUnfix] WITH CHECK ADD CONSTRAINT [FK_PurchaseMasterUnfix_PurchaseMasterUnfix] FOREIGN KEY([ConnectedPurchaseID]) REFERENCES [dbo].[PurchaseMasterUnfix] ([PurchaseID]) GO ALTER TABLE [dbo].[PurchaseMasterUnfix] CHECK CONSTRAINT [FK_PurchaseMasterUnfix_PurchaseMasterUnfix] GO Alter Table MetalSales Add PurchaseOrderNo Nvarchar(100) Go Alter Table MetalSales Add PurchaseOrderDate datetime Go Alter Table MetalSales Add Brand Nvarchar(100) Go Alter Table MetalSales Add TermsofDelivery Nvarchar(100) Go Alter Table MetalSales Add NoofPcs Nvarchar(100) Go Alter Table PurchaseMaster Add CalculationOn Int Go Alter table PurchaseMaster Add JournalVoucherID bigint Go Alter Table DeliveryChallan Add ProductStatusID bigInt Go Alter Table DeliveryChallan Add VoucherID bigInt Go Alter Table BranchMaster Add BankDetails nvarchar(max) Go Alter Table Transactions Add PaymentTransactionType nvarchar(max) Go Alter Table Transactions Add PaymentTransactionNumber nvarchar(max) Go Alter Table Ledger Add PaymentTransactionType nvarchar(max) Go Alter Table Ledger Add PaymentTransactionNumber nvarchar(max) Go Alter Table Ledger Add BankDate DateTime Go Alter Table Contra Add PaymentTransactionType nvarchar(max) Go Alter Table Contra Add PaymentTransactionNumber nvarchar(max) GO Alter Table MetalSales Add ISCancel bit Go Alter Table TallySync Add VoucharDate Datetime GO Create PROCEDURE [dbo].[SPGETTallySync3] @BranchID Bigint, @TableName nvarchar(200), @Sync int, @fromDate datetime, @ToDate datetime AS BEGIN DECLARE @Query varchar(max)='' Set @Query=' SELECT TallySyncID,TallyXML,TallyGUID,IsTallySync,TallySyncDate,TableName,TableID,TS.EntryUserName,TS.LastUpdateTime ,EnteryDate,ComputerIDAddress,Response,ISSuccess,TS.BranchID ,BM.BranchName,TS.VoucharDate FROM TallySync TS Left join BranchMaster BM on TS.BranchID=BM.BranchID Where 1=1 ' if(@BranchID>0) Set @Query+=' and TS.BranchID='+CONVERT(varchar,@BranchID) if(@TableName!='All') Set @Query+=' and TS.TableName='''+CONVERT(varchar,@TableName)+'''' if(@Sync=1) Set @Query+=' and ISNULL(TS.IsTallySync,0)= 1' if(@Sync=2) Set @Query+=' and ISNULL(TS.IsTallySync,0)= 0' Set @Query+=' and CONVERT(datetime,VoucharDate) >= CONVERT(datetime,'''+CONVERT(varchar,@fromDate)+''')' Set @Query+=' and CONVERT(datetime,VoucharDate) <= CONVERT(datetime,'''+ CONVERT(varchar,@ToDate) +''')' --print @Query EXECUTE (@Query) END Go Alter Table VoucherSetting Add SequenceDigit int GO CREATE TABLE [dbo].[TallySyncHistory]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [VoucharID] [nvarchar](100) NULL, [TallyXML] [nvarchar](max) NULL, [TallyResponse] [nvarchar](max) NULL, [ISTallySync] [bit] NULL, [VoucharType] [nvarchar](100) NULL, [SyncDateTiime] [datetime] NULL, [SyncUserName] [nvarchar](100) NULL, [BranchID] [bigint] NULL, CONSTRAINT [PK_TallySyncHistory] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] Go Alter Table ClientToClientTransfer Add CreditProductStatusID bigint Go Alter Table ClientToClientTransfer Add DebitProductStatusID bigint Go Alter Table ClientToClientTransfer Add VoucherID bigint GO CREATE TABLE [dbo].[YesBankNotifyRequest]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [CustomerCode] [nvarchar](max) NULL, [BeneAccountNo] [nvarchar](max) NULL, [BeneAccountIfsc] [nvarchar](max) NULL, [BeneFullName] [nvarchar](max) NULL, [TransferType] [nvarchar](max) NULL, [TransferUniqueNo] [nvarchar](max) NULL, [TransferTimestamp] [nvarchar](max) NULL, [TransferCCY] [nvarchar](max) NULL, [TransferAmt] [nvarchar](max) NULL, [RmtrAccountNo] [nvarchar](max) NULL, [RmtrAccountIfsc] [nvarchar](max) NULL, [RmtrAccountType] [nvarchar](max) NULL, [RmtrFullName] [nvarchar](max) NULL, [RmtrAddress] [nvarchar](max) NULL, [RmtrToBeneNote] [nvarchar](max) NULL, [AttemptNo] [nvarchar](max) NULL, [Status] [nvarchar](max) NULL, [CreditAcctNo] [nvarchar](max) NULL, [CreditedAt] [nvarchar](max) NULL, [EntryDateTime] [datetime] NULL, [Response] [nvarchar](max) NULL, CONSTRAINT [PK_YesBankNotifyRequest] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO CREATE TABLE [dbo].[YesBankValidateRequest]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [CustomerCode] [nvarchar](max) NULL, [BeneAccountNo] [nvarchar](max) NULL, [BeneAccountIfsc] [nvarchar](max) NULL, [BeneFullName] [nvarchar](max) NULL, [TransferType] [nvarchar](max) NULL, [TransferUniqueNo] [nvarchar](max) NULL, [TransferTimestamp] [nvarchar](max) NULL, [TransferCCY] [nvarchar](max) NULL, [TransferAmt] [nvarchar](max) NULL, [RmtrAccountNo] [nvarchar](max) NULL, [RmtrAccountIfsc] [nvarchar](max) NULL, [RmtrAccountType] [nvarchar](max) NULL, [RmtrFullName] [nvarchar](max) NULL, [RmtrAddress] [nvarchar](max) NULL, [RmtrToBeneNote] [nvarchar](max) NULL, [AttemptNo] [nvarchar](max) NULL, [EntryDateTime] [datetime] NULL, [Response] [nvarchar](max) NULL, CONSTRAINT [PK_YesBankValidateRequest] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO Alter Table ProductStatus Add BalanceQty Money Go Alter Table MetalSales Add CashBankEntryVoucherID Bigint Go Alter Table MetalSales Add CashBankAmount Money Go Alter Table DomailList Add SSLSubjectName nvarchar(MAX) Go Alter Table DomailList Add SSLIssuerName nvarchar(MAX) Go Alter Table DomailList Add SSLValidFrom nvarchar(MAX) Go Alter Table DomailList Add SSLValidTo nvarchar(MAX) Go Alter Table SubDomainList Add SSLSubjectName nvarchar(MAX) Go Alter Table SubDomainList Add SSLIssuerName nvarchar(MAX) Go Alter Table SubDomainList Add SSLValidFrom nvarchar(MAX) Go Alter Table SubDomainList Add SSLValidTo nvarchar(MAX) Go Alter Table SubDomainList Add SSLEnable bit Go Alter Table DomailList Add SSLEnable bit Go ALter Table SubDomainList Add HttpPort int Go ALter Table DomailList Add HttpPort int GO Alter Table Ledger Add VoucherRefNo nvarchar(MAX) Go Alter Table CustomerMaster Add TypeOfDuty nvarchar(100) Go Alter Table CustomerMaster Add TaxType nvarchar(100) Go Alter Table CustomerMaster Add PerOfCal money GO ALTER PROC [dbo].[GetDynamicSequenceforInvoiceNo2](@TableName NVARCHAR(50)) AS BEGIN DECLARE @SQLSelectQuery NVARCHAR(MAX)='' SET @SQLSelectQuery = 'SELECT NEXT VALUE FOR [' + @TableName +'] AS VoucherID ' IF ( EXISTS( SELECT * FROM sys.sequences WHERE name = @TableName)) BEGIN exec(@SQLSelectQuery) END else BEGIN exec('CREATE SEQUENCE ['+ @TableName+'] START WITH 1 INCREMENT BY 1') exec(@SQLSelectQuery) END END GO CREATE TABLE [dbo].[BranchBankDetails]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [BranchID] [bigint] NULL, [BankName] [nvarchar](500) NULL, [BankAccountName] [nvarchar](500) NULL, [IFSCCode] [nvarchar](500) NULL, [VirtualAccountPrifix] [nvarchar](500) NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, CONSTRAINT [PK_BranchBankDetails] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO Alter Table PurchaseMaster Add TradeID BigInt GO CREATE TRIGGER [dbo].[ProductStatus_AUDITDelete] ON [dbo].[ProductStatus] FOR Delete AS DECLARE @bit INT , @field INT , @maxfield INT , @char INT , @fieldname VARCHAR(128) , @TableName VARCHAR(128) , @PKCols VARCHAR(1000) , @sql VARCHAR(2000), @UpdateDate VARCHAR(21) , @UserName VARCHAR(128) , @Type CHAR(1) , @PKSelect VARCHAR(1000) --You will need to change @TableName to match the table to be audited. -- Here we made GUESTS for your example. SELECT @TableName = 'ProductStatus' -- date and user SELECT @UserName = convert(NVARCHAR(16),CONNECTIONPROPERTY('client_net_address')), @UpdateDate = CONVERT (NVARCHAR(30),GETDATE(),126) -- Action IF EXISTS (SELECT * FROM inserted) IF EXISTS (SELECT * FROM deleted) SELECT @Type = 'U' ELSE SELECT @Type = 'I' ELSE SELECT @Type = 'D' -- get list of columns SELECT * INTO #ins FROM inserted SELECT * INTO #del FROM deleted -- Get primary key columns for full outer join SELECT @PKCols = COALESCE(@PKCols + ' and', ' on') + ' i.' + c.COLUMN_NAME + ' = d.' + c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME -- Get primary key select for insert SELECT @PKSelect = COALESCE(@PKSelect+'+','') + 'convert(varchar(100),coalesce(i.' + COLUMN_NAME +',d.' + COLUMN_NAME + '))' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk , INFORMATION_SCHEMA.KEY_COLUMN_USAGE c WHERE pk.TABLE_NAME = @TableName AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND c.TABLE_NAME = pk.TABLE_NAME AND c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME IF @PKCols IS NULL BEGIN RAISERROR('no PK on table %s', 16, -1, @TableName) RETURN END SELECT @field = 0, @maxfield = MAX(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName WHILE @field < @maxfield BEGIN SELECT @field = MIN(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION > @field SELECT @bit = (@field - 1 )% 8 + 1 SELECT @bit = POWER(2,@bit - 1) SELECT @char = ((@field - 1) / 8) + 1 IF SUBSTRING(COLUMNS_UPDATED(),@char, 1) & @bit > 0 OR @Type IN ('I','D') BEGIN SELECT @fieldname = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND ORDINAL_POSITION = @field and COLUMN_NAME <> 'EntryDateTime' SELECT @sql = ' insert Audit ( Type, TableName, PK, FieldName, OldValue, NewValue, UpdateDate, UserName) select ''' + @Type + ''',''' + @TableName + ''',' + @PKSelect + ',''' + @fieldname + '''' + ',convert(varchar(1000),d.' + @fieldname + ')' + ',convert(varchar(1000),i.' + @fieldname + ')' + ',''' + @UpdateDate + '''' + ',''' + @UserName + '''' + ' from #ins i full outer join #del d' + @PKCols + ' where i.' + @fieldname + ' <> d.' + @fieldname + ' or (i.' + @fieldname + ' is null and d.' + @fieldname + ' is not null)' + ' or (i.' + @fieldname + ' is not null and d.' + @fieldname + ' is null)' EXEC (@sql) END END GO Alter Table BranchBankDetails Add BranchName nvarchar(max) GO CREATE TABLE [dbo].[ProductToProductTransfer]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [DebitProductID] [bigint] NULL, [CreditProductID] [bigint] NULL, [BranchID] [bigint] NOT NULL, [VoucharDate] [datetime] NULL, [Weight] [money] NULL, [Narration] [nvarchar](max) NULL, [BusinessVerticalID] [bigint] NULL, [EntryUserName] [nvarchar](50) NULL, [EntryDatetime] [datetime] NULL, [LastUpdateDateTime] [datetime] NULL, [CreditProductStatusID] [bigint] NULL, [DebitProductStatusID] [bigint] NULL, [VoucherID] [bigint] NULL, CONSTRAINT [PK_ProductToProductTransfer] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO CREATE TABLE [dbo].[StockDebitCreditNote]( [NoteID] [bigint] IDENTITY(1,1) NOT NULL, [CustomerID] [bigint] NULL, [NoteDate] [smalldatetime] NULL, [BranchID] [bigint] NULL, [ProductID] [bigint] NULL, [Rate] [money] NULL, [VAT] [money] NULL, [TotalRate] [money] NULL, [InvoiceNo] [nvarchar](100) NULL, [DebitCredit] [nvarchar](100) NULL, [LedgerVoucherNo] [bigint] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [ReverseChargeYN] [nvarchar](50) NULL, [ModeOfDelivery] [nvarchar](1000) NULL, [Remark] [nvarchar](1000) NULL, [CreditDebitVoucherNo] [bigint] NULL, [VoucherID] [bigint] NULL, [TallyGUID] [nvarchar](max) NULL, [IsTallySync] [nvarchar](10) NULL, [TallySyncDate] [datetime] NULL, [CGSTVoucherNo] [bigint] NULL, [SGSTVoucherNo] [bigint] NULL, [IGSTVoucherNo] [bigint] NULL, [BusinessVerticalID] [int] NULL, [EntryTime] [smalldatetime] NULL, [OtherRefNo] [nvarchar](max) NULL, [OtherRefNoDate] [datetime] NULL, [Extra1] [nvarchar](max) NULL, [Extra2] [nvarchar](max) NULL, [Extra3] [nvarchar](max) NULL, [AckNo] [nvarchar](max) NULL, [AckDt] [nvarchar](max) NULL, [Quantity] [money] NULL, CONSTRAINT [PK_StockDebitCreditNote] PRIMARY KEY CLUSTERED ( [NoteID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[StockDebitCreditNote] WITH CHECK ADD CONSTRAINT [FK_StockDebitCreditNote_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO ALTER TABLE [dbo].[StockDebitCreditNote] CHECK CONSTRAINT [FK_StockDebitCreditNote_BranchMaster] GO ALTER TABLE [dbo].[StockDebitCreditNote] WITH CHECK ADD CONSTRAINT [FK_StockDebitCreditNote_CustomerMaster] FOREIGN KEY([CustomerID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[StockDebitCreditNote] CHECK CONSTRAINT [FK_StockDebitCreditNote_CustomerMaster] GO ALTER TABLE [dbo].[StockDebitCreditNote] WITH CHECK ADD CONSTRAINT [FK_StockDebitCreditNote_Ledger] FOREIGN KEY([LedgerVoucherNo]) REFERENCES [dbo].[Ledger] ([VoucherNo]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[StockDebitCreditNote] CHECK CONSTRAINT [FK_StockDebitCreditNote_Ledger] GO ALTER TABLE [dbo].[StockDebitCreditNote] WITH CHECK ADD CONSTRAINT [FK_StockDebitCreditNote_ProductMaster] FOREIGN KEY([ProductID]) REFERENCES [dbo].[ProductMaster] ([ProductID]) GO ALTER TABLE [dbo].[StockDebitCreditNote] CHECK CONSTRAINT [FK_StockDebitCreditNote_ProductMaster] GO Alter Table StockDebitCreditNote Add ProductStatusID bigint GO CREATE TABLE [dbo].[TransactionDetails]( [TransactionDetailsID] [bigint] IDENTITY(1,1) NOT NULL, [TransactionID] [bigint] NOT NULL, [TransactionDate] [smalldatetime] NOT NULL, [CustomerID] [bigint] NULL, [BankID] [bigint] NULL, [TransactionType] [nvarchar](max) NULL, [Credit] [money] NULL, [Debit] [money] NULL, [Remarks] [nvarchar](max) NULL, [Narration] [nvarchar](max) NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, [Extra1] [nvarchar](max) NULL, [Extra2] [nvarchar](max) NULL, [Extra3] [nvarchar](max) NULL, [Extra4] [nvarchar](max) NULL, [CustomerName] [nvarchar](max) NULL, [ConnectedTransactionID] [bigint] NULL, [CustomerVoucherNo] [bigint] NULL, [BookVoucherNo] [bigint] NULL, [VoucherID] [bigint] NULL, [TallyGUID] [nvarchar](max) NULL, [IsTallySync] [nvarchar](10) NULL, [TallySyncDate] [datetime] NULL, [BranchID] [bigint] NULL, [BusinessVerticalID] [int] NULL, [EntryTime] [smalldatetime] NULL, [PaymentTransactionType] [nvarchar](max) NULL, [PaymentTransactionNumber] [nvarchar](max) NULL, CONSTRAINT [PK_TransactionDetails] PRIMARY KEY CLUSTERED ( [TransactionDetailsID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO CREATE TABLE [dbo].[JobWorkMaster]( [JobWorkID] [bigint] IDENTITY(1,1) NOT NULL, [SupplierID] [bigint] NULL, [JobWorkDate] [smalldatetime] NOT NULL, [NoOfPieces] [money] NULL, [Quantity] [money] NOT NULL, [Rate] [money] NULL, [Value] [money] NULL, [VATAmount] [money] NULL, [InvoiceNo] [nvarchar](max) NULL, [CreditDebit] [nvarchar](max) NULL, [ProductID] [bigint] NULL, [BranchID] [bigint] NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, [Extra1] [nvarchar](max) NULL, [Extra2] [nvarchar](max) NULL, [Extra3] [nvarchar](max) NULL, [Extra4] [nvarchar](max) NULL, [SupplierName] [nvarchar](max) NULL, [ConnectedJobWorkID] [bigint] NULL, [LedgerVoucherNo] [bigint] NULL, [ProductStatusID] [bigint] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TCS] [money] NULL, [TDSCreditVoucherNo] [bigint] NULL, [TDSDebitVoucherNo] [bigint] NULL, [TaxType] [nvarchar](max) NULL, [TotalAmount] [money] NULL, [SGSTVoucherNo] [int] NULL, [CGSTVoucherNo] [int] NULL, [IGSTVoucherNo] [int] NULL, [PurcherBookVoucherNo] [int] NULL, [TCSCreditVoucherNo] [int] NULL, [TCSDebitVoucherNo] [int] NULL, [VoucherID] [bigint] NULL, [JobWorkLedgerID] [bigint] NULL, [TallyGUID] [nvarchar](max) NULL, [IsTallySync] [nvarchar](10) NULL, [TallySyncDate] [datetime] NULL, [TDS] [money] NULL, [BarNo] [varchar](2000) NULL, [InwardDate] [datetime] NULL, [BusinessVerticalID] [int] NULL, [EntryTime] [smalldatetime] NULL, [trdId] [nvarchar](max) NULL, [DeliveryReceiptNoteID] [bigint] NULL, [RoundOff] [money] NULL, [RoundOffVoucherNo] [bigint] NULL, [CalculationOn] [int] NULL, [JournalVoucherID] [bigint] NULL, [TradeID] [bigint] NULL, CONSTRAINT [PK_JobWorkMaster] PRIMARY KEY CLUSTERED ( [JobWorkID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[JobWorkMaster] WITH CHECK ADD CONSTRAINT [FK_JobWorkMaster_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO ALTER TABLE [dbo].[JobWorkMaster] CHECK CONSTRAINT [FK_JobWorkMaster_BranchMaster] GO ALTER TABLE [dbo].[JobWorkMaster] WITH CHECK ADD CONSTRAINT [FK_JobWorkMaster_CustomerMaster] FOREIGN KEY([SupplierID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[JobWorkMaster] CHECK CONSTRAINT [FK_JobWorkMaster_CustomerMaster] GO ALTER TABLE [dbo].[JobWorkMaster] WITH CHECK ADD CONSTRAINT [FK_JobWorkMaster_JobWorkMaster] FOREIGN KEY([ConnectedJobWorkID]) REFERENCES [dbo].[JobWorkMaster] ([JobWorkID]) GO ALTER TABLE [dbo].[JobWorkMaster] CHECK CONSTRAINT [FK_JobWorkMaster_JobWorkMaster] GO ALTER TABLE [dbo].[JobWorkMaster] WITH CHECK ADD CONSTRAINT [FK_JobWorkMaster_Ledger] FOREIGN KEY([LedgerVoucherNo]) REFERENCES [dbo].[Ledger] ([VoucherNo]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[JobWorkMaster] CHECK CONSTRAINT [FK_JobWorkMaster_Ledger] GO ALTER TABLE [dbo].[JobWorkMaster] WITH CHECK ADD CONSTRAINT [FK_JobWorkMaster_ProductMaster] FOREIGN KEY([ProductID]) REFERENCES [dbo].[ProductMaster] ([ProductID]) GO ALTER TABLE [dbo].[JobWorkMaster] CHECK CONSTRAINT [FK_JobWorkMaster_ProductMaster] GO ALTER TABLE [dbo].[JobWorkMaster] WITH CHECK ADD CONSTRAINT [FK_JobWorkMaster_ProductStatus] FOREIGN KEY([ProductStatusID]) REFERENCES [dbo].[ProductStatus] ([ProductStatusID]) GO ALTER TABLE [dbo].[JobWorkMaster] CHECK CONSTRAINT [FK_JobWorkMaster_ProductStatus] GO GO CREATE TABLE [dbo].[JobWorkDetails]( [ID] [int] IDENTITY(1,1) NOT NULL, [JobWorkID] [bigint] NULL, [ProductID] [bigint] NULL, [Qty] [money] NULL, [Rate] [money] NULL, [Value] [money] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TotalAmount] [money] NULL, [GST] [money] NULL, [ProductStatusID] [bigint] NULL, [VoucherID] [bigint] NULL, CONSTRAINT [PK_JobWorkDetails] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO GO CREATE TABLE [dbo].[JobWorkInMaster]( [JobWorkInID] [bigint] IDENTITY(1,1) NOT NULL, [SupplierID] [bigint] NULL, [JobWorkInDate] [smalldatetime] NOT NULL, [NoOfPieces] [money] NULL, [Quantity] [money] NOT NULL, [Rate] [money] NULL, [Value] [money] NULL, [VATAmount] [money] NULL, [InvoiceNo] [nvarchar](max) NULL, [CreditDebit] [nvarchar](max) NULL, [ProductID] [bigint] NULL, [BranchID] [bigint] NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, [Extra1] [nvarchar](max) NULL, [Extra2] [nvarchar](max) NULL, [Extra3] [nvarchar](max) NULL, [Extra4] [nvarchar](max) NULL, [SupplierName] [nvarchar](max) NULL, [ConnectedJobWorkInID] [bigint] NULL, [LedgerVoucherNo] [bigint] NULL, [ProductStatusID] [bigint] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TCS] [money] NULL, [TDSCreditVoucherNo] [bigint] NULL, [TDSDebitVoucherNo] [bigint] NULL, [TaxType] [nvarchar](max) NULL, [TotalAmount] [money] NULL, [SGSTVoucherNo] [int] NULL, [CGSTVoucherNo] [int] NULL, [IGSTVoucherNo] [int] NULL, [PurcherBookVoucherNo] [int] NULL, [TCSCreditVoucherNo] [int] NULL, [TCSDebitVoucherNo] [int] NULL, [VoucherID] [bigint] NULL, [JobWorkInLedgerID] [bigint] NULL, [TallyGUID] [nvarchar](max) NULL, [IsTallySync] [nvarchar](10) NULL, [TallySyncDate] [datetime] NULL, [TDS] [money] NULL, [BarNo] [varchar](2000) NULL, [InwardDate] [datetime] NULL, [BusinessVerticalID] [int] NULL, [EntryTime] [smalldatetime] NULL, [trdId] [nvarchar](max) NULL, [DeliveryReceiptNoteID] [bigint] NULL, [RoundOff] [money] NULL, [RoundOffVoucherNo] [bigint] NULL, [CalculationOn] [int] NULL, [JournalVoucherID] [bigint] NULL, [TradeID] [bigint] NULL, CONSTRAINT [PK_JobWorkInMaster] PRIMARY KEY CLUSTERED ( [JobWorkInID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[JobWorkInMaster] WITH CHECK ADD CONSTRAINT [FK_JobWorkInMaster_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO ALTER TABLE [dbo].[JobWorkInMaster] CHECK CONSTRAINT [FK_JobWorkInMaster_BranchMaster] GO ALTER TABLE [dbo].[JobWorkInMaster] WITH CHECK ADD CONSTRAINT [FK_JobWorkInMaster_CustomerMaster] FOREIGN KEY([SupplierID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[JobWorkInMaster] CHECK CONSTRAINT [FK_JobWorkInMaster_CustomerMaster] GO ALTER TABLE [dbo].[JobWorkInMaster] WITH CHECK ADD CONSTRAINT [FK_JobWorkInMaster_JobWorkInMaster] FOREIGN KEY([ConnectedJobWorkInID]) REFERENCES [dbo].[JobWorkInMaster] ([JobWorkInID]) GO ALTER TABLE [dbo].[JobWorkInMaster] CHECK CONSTRAINT [FK_JobWorkInMaster_JobWorkInMaster] GO ALTER TABLE [dbo].[JobWorkInMaster] WITH CHECK ADD CONSTRAINT [FK_JobWorkInMaster_Ledger] FOREIGN KEY([LedgerVoucherNo]) REFERENCES [dbo].[Ledger] ([VoucherNo]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[JobWorkInMaster] CHECK CONSTRAINT [FK_JobWorkInMaster_Ledger] GO ALTER TABLE [dbo].[JobWorkInMaster] WITH CHECK ADD CONSTRAINT [FK_JobWorkInMaster_ProductMaster] FOREIGN KEY([ProductID]) REFERENCES [dbo].[ProductMaster] ([ProductID]) GO ALTER TABLE [dbo].[JobWorkInMaster] CHECK CONSTRAINT [FK_JobWorkInMaster_ProductMaster] GO ALTER TABLE [dbo].[JobWorkInMaster] WITH CHECK ADD CONSTRAINT [FK_JobWorkInMaster_ProductStatus] FOREIGN KEY([ProductStatusID]) REFERENCES [dbo].[ProductStatus] ([ProductStatusID]) GO ALTER TABLE [dbo].[JobWorkInMaster] CHECK CONSTRAINT [FK_JobWorkInMaster_ProductStatus] GO GO CREATE TABLE [dbo].[JobWorkInDetails]( [ID] [int] IDENTITY(1,1) NOT NULL, [JobWorkInID] [bigint] NULL, [ProductID] [bigint] NULL, [Qty] [money] NULL, [Rate] [money] NULL, [Value] [money] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TotalAmount] [money] NULL, [GST] [money] NULL, [ProductStatusID] [bigint] NULL, [VoucherID] [bigint] NULL, CONSTRAINT [PK_JobWorkInDetails] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO GO CREATE TABLE [dbo].[MaterialInMaster]( [MaterialInID] [bigint] IDENTITY(1,1) NOT NULL, [SupplierID] [bigint] NULL, [MaterialInDate] [smalldatetime] NOT NULL, [NoOfPieces] [money] NULL, [Quantity] [money] NOT NULL, [Rate] [money] NULL, [Value] [money] NULL, [VATAmount] [money] NULL, [InvoiceNo] [nvarchar](max) NULL, [CreditDebit] [nvarchar](max) NULL, [ProductID] [bigint] NULL, [BranchID] [bigint] NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, [Extra1] [nvarchar](max) NULL, [Extra2] [nvarchar](max) NULL, [Extra3] [nvarchar](max) NULL, [Extra4] [nvarchar](max) NULL, [SupplierName] [nvarchar](max) NULL, [ConnectedMaterialInID] [bigint] NULL, [LedgerVoucherNo] [bigint] NULL, [ProductStatusID] [bigint] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TCS] [money] NULL, [TDSCreditVoucherNo] [bigint] NULL, [TDSDebitVoucherNo] [bigint] NULL, [TaxType] [nvarchar](max) NULL, [TotalAmount] [money] NULL, [SGSTVoucherNo] [int] NULL, [CGSTVoucherNo] [int] NULL, [IGSTVoucherNo] [int] NULL, [PurcherBookVoucherNo] [int] NULL, [TCSCreditVoucherNo] [int] NULL, [TCSDebitVoucherNo] [int] NULL, [VoucherID] [bigint] NULL, [MaterialInLedgerID] [bigint] NULL, [TallyGUID] [nvarchar](max) NULL, [IsTallySync] [nvarchar](10) NULL, [TallySyncDate] [datetime] NULL, [TDS] [money] NULL, [BarNo] [varchar](2000) NULL, [InwardDate] [datetime] NULL, [BusinessVerticalID] [int] NULL, [EntryTime] [smalldatetime] NULL, [trdId] [nvarchar](max) NULL, [DeliveryReceiptNoteID] [bigint] NULL, [RoundOff] [money] NULL, [RoundOffVoucherNo] [bigint] NULL, [CalculationOn] [int] NULL, [JournalVoucherID] [bigint] NULL, [TradeID] [bigint] NULL, CONSTRAINT [PK_MaterialInMaster] PRIMARY KEY CLUSTERED ( [MaterialInID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[MaterialInMaster] WITH CHECK ADD CONSTRAINT [FK_MaterialInMaster_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO ALTER TABLE [dbo].[MaterialInMaster] CHECK CONSTRAINT [FK_MaterialInMaster_BranchMaster] GO ALTER TABLE [dbo].[MaterialInMaster] WITH CHECK ADD CONSTRAINT [FK_MaterialInMaster_CustomerMaster] FOREIGN KEY([SupplierID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[MaterialInMaster] CHECK CONSTRAINT [FK_MaterialInMaster_CustomerMaster] GO ALTER TABLE [dbo].[MaterialInMaster] WITH CHECK ADD CONSTRAINT [FK_MaterialInMaster_MaterialInMaster] FOREIGN KEY([ConnectedMaterialInID]) REFERENCES [dbo].[MaterialInMaster] ([MaterialInID]) GO ALTER TABLE [dbo].[MaterialInMaster] CHECK CONSTRAINT [FK_MaterialInMaster_MaterialInMaster] GO ALTER TABLE [dbo].[MaterialInMaster] WITH CHECK ADD CONSTRAINT [FK_MaterialInMaster_Ledger] FOREIGN KEY([LedgerVoucherNo]) REFERENCES [dbo].[Ledger] ([VoucherNo]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[MaterialInMaster] CHECK CONSTRAINT [FK_MaterialInMaster_Ledger] GO ALTER TABLE [dbo].[MaterialInMaster] WITH CHECK ADD CONSTRAINT [FK_MaterialInMaster_ProductMaster] FOREIGN KEY([ProductID]) REFERENCES [dbo].[ProductMaster] ([ProductID]) GO ALTER TABLE [dbo].[MaterialInMaster] CHECK CONSTRAINT [FK_MaterialInMaster_ProductMaster] GO ALTER TABLE [dbo].[MaterialInMaster] WITH CHECK ADD CONSTRAINT [FK_MaterialInMaster_ProductStatus] FOREIGN KEY([ProductStatusID]) REFERENCES [dbo].[ProductStatus] ([ProductStatusID]) GO ALTER TABLE [dbo].[MaterialInMaster] CHECK CONSTRAINT [FK_MaterialInMaster_ProductStatus] GO GO CREATE TABLE [dbo].[MaterialInDetails]( [ID] [int] IDENTITY(1,1) NOT NULL, [MaterialInID] [bigint] NULL, [ProductID] [bigint] NULL, [Qty] [money] NULL, [Rate] [money] NULL, [Value] [money] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TotalAmount] [money] NULL, [GST] [money] NULL, [ProductStatusID] [bigint] NULL, [VoucherID] [bigint] NULL, CONSTRAINT [PK_MaterialInDetails] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO GO CREATE TABLE [dbo].[MaterialOutMaster]( [MaterialOutID] [bigint] IDENTITY(1,1) NOT NULL, [SupplierID] [bigint] NULL, [MaterialOutDate] [smalldatetime] NOT NULL, [NoOfPieces] [money] NULL, [Quantity] [money] NOT NULL, [Rate] [money] NULL, [Value] [money] NULL, [VATAmount] [money] NULL, [InvoiceNo] [nvarchar](max) NULL, [CreditDebit] [nvarchar](max) NULL, [ProductID] [bigint] NULL, [BranchID] [bigint] NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, [Extra1] [nvarchar](max) NULL, [Extra2] [nvarchar](max) NULL, [Extra3] [nvarchar](max) NULL, [Extra4] [nvarchar](max) NULL, [SupplierName] [nvarchar](max) NULL, [ConnectedMaterialOutID] [bigint] NULL, [LedgerVoucherNo] [bigint] NULL, [ProductStatusID] [bigint] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TCS] [money] NULL, [TDSCreditVoucherNo] [bigint] NULL, [TDSDebitVoucherNo] [bigint] NULL, [TaxType] [nvarchar](max) NULL, [TotalAmount] [money] NULL, [SGSTVoucherNo] [int] NULL, [CGSTVoucherNo] [int] NULL, [IGSTVoucherNo] [int] NULL, [PurcherBookVoucherNo] [int] NULL, [TCSCreditVoucherNo] [int] NULL, [TCSDebitVoucherNo] [int] NULL, [VoucherID] [bigint] NULL, [MaterialOutLedgerID] [bigint] NULL, [TallyGUID] [nvarchar](max) NULL, [IsTallySync] [nvarchar](10) NULL, [TallySyncDate] [datetime] NULL, [TDS] [money] NULL, [BarNo] [varchar](2000) NULL, [InwardDate] [datetime] NULL, [BusinessVerticalID] [int] NULL, [EntryTime] [smalldatetime] NULL, [trdId] [nvarchar](max) NULL, [DeliveryReceiptNoteID] [bigint] NULL, [RoundOff] [money] NULL, [RoundOffVoucherNo] [bigint] NULL, [CalculationOn] [int] NULL, [JournalVoucherID] [bigint] NULL, [TradeID] [bigint] NULL, CONSTRAINT [PK_MaterialOutMaster] PRIMARY KEY CLUSTERED ( [MaterialOutID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[MaterialOutMaster] WITH CHECK ADD CONSTRAINT [FK_MaterialOutMaster_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO ALTER TABLE [dbo].[MaterialOutMaster] CHECK CONSTRAINT [FK_MaterialOutMaster_BranchMaster] GO ALTER TABLE [dbo].[MaterialOutMaster] WITH CHECK ADD CONSTRAINT [FK_MaterialOutMaster_CustomerMaster] FOREIGN KEY([SupplierID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[MaterialOutMaster] CHECK CONSTRAINT [FK_MaterialOutMaster_CustomerMaster] GO ALTER TABLE [dbo].[MaterialOutMaster] WITH CHECK ADD CONSTRAINT [FK_MaterialOutMaster_MaterialOutMaster] FOREIGN KEY([ConnectedMaterialOutID]) REFERENCES [dbo].[MaterialOutMaster] ([MaterialOutID]) GO ALTER TABLE [dbo].[MaterialOutMaster] CHECK CONSTRAINT [FK_MaterialOutMaster_MaterialOutMaster] GO ALTER TABLE [dbo].[MaterialOutMaster] WITH CHECK ADD CONSTRAINT [FK_MaterialOutMaster_Ledger] FOREIGN KEY([LedgerVoucherNo]) REFERENCES [dbo].[Ledger] ([VoucherNo]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[MaterialOutMaster] CHECK CONSTRAINT [FK_MaterialOutMaster_Ledger] GO ALTER TABLE [dbo].[MaterialOutMaster] WITH CHECK ADD CONSTRAINT [FK_MaterialOutMaster_ProductMaster] FOREIGN KEY([ProductID]) REFERENCES [dbo].[ProductMaster] ([ProductID]) GO ALTER TABLE [dbo].[MaterialOutMaster] CHECK CONSTRAINT [FK_MaterialOutMaster_ProductMaster] GO ALTER TABLE [dbo].[MaterialOutMaster] WITH CHECK ADD CONSTRAINT [FK_MaterialOutMaster_ProductStatus] FOREIGN KEY([ProductStatusID]) REFERENCES [dbo].[ProductStatus] ([ProductStatusID]) GO ALTER TABLE [dbo].[MaterialOutMaster] CHECK CONSTRAINT [FK_MaterialOutMaster_ProductStatus] GO GO CREATE TABLE [dbo].[MaterialOutDetails]( [ID] [int] IDENTITY(1,1) NOT NULL, [MaterialOutID] [bigint] NULL, [ProductID] [bigint] NULL, [Qty] [money] NULL, [Rate] [money] NULL, [Value] [money] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TotalAmount] [money] NULL, [GST] [money] NULL, [ProductStatusID] [bigint] NULL, [VoucherID] [bigint] NULL, CONSTRAINT [PK_MaterialOutDetails] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO Alter Table MetalSales Add Pcs Money Go Alter Table Transactions Add InvoiceNo nvarchar(25) Go Alter Table PurchaseMaster Add TradeNo nvarchar(max) Go Alter Table MetalSales Add TradeNo nvarchar(max) GO CREATE TABLE [dbo].[ICICIRequest]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [ClientCode] [nvarchar](max) NULL, [VirtualAccountNumber] [nvarchar](max) NULL, [Mode] [nvarchar](max) NULL, [UTR] [nvarchar](max) NULL, [SenderRemark] [nvarchar](max) NULL, [ClientAccountNo] [nvarchar](max) NULL, [Amount] [money] NULL, [PayerName] [nvarchar](max) NULL, [PayerAccNumber] [nvarchar](max) NULL, [PayerBankIFSC] [nvarchar](max) NULL, [PayerPaymentDate] [datetime] NULL, [BankInternalTransactionNumber] [nvarchar](max) NULL, [EntryDate] [datetime] NULL, [requestId] [nvarchar](max) NULL, [ICICIService] [nvarchar](max) NULL, [EncryptedKey] [nvarchar](max) NULL, [EncryptedData] [nvarchar](max) NULL, [ClientInfo] [nvarchar](max) NULL, [OptionalParam] [nvarchar](max) NULL, [IV] [nvarchar](max) NULL, [RequestData] [nvarchar](max) NULL, [OaepHashingAlgorithm] [nvarchar](max) NULL, CONSTRAINT [PK_ICICIRequest] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO CREATE TABLE [dbo].[SBIRequest]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [VirtualAccountNumber] [nvarchar](max) NULL, [Amount] [money] NULL, [EntryDate] [datetime] NULL, [TranType] [nvarchar](50) NULL, [RefID] [nvarchar](max) NULL, [UTR] [nvarchar](max) NULL, CONSTRAINT [PK_SBIRequest] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO CREATE TABLE [dbo].[SBIReqToken]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [SBIToken] [nvarchar](max) NULL, [ISUse] [bit] NULL, [EntryDate] [datetime] NULL, [UseDate] [datetime] NULL, CONSTRAINT [PK_SBIReqToken] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO CREATE TABLE [dbo].[PhonePayRequest]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [MerchantId] [nvarchar](max) NULL, [MerchantTransactionId] [nvarchar](max) NULL, [MerchantUserId] [nvarchar](max) NULL, [Amount] [money] NULL, [RedirectUrl] [nvarchar](max) NULL, [RedirectMode] [nvarchar](max) NULL, [CallbackUrl] [nvarchar](max) NULL, [MerchantOrderId] [nvarchar](max) NULL, [MobileNumber] [nvarchar](max) NULL, [Message] [nvarchar](max) NULL, [Email] [nvarchar](max) NULL, [ShortName] [nvarchar](max) NULL, [PaymentInstrumentType] [nvarchar](max) NULL, [EntryDateTime] [datetime] NULL, [MiniAdminUserName] [nvarchar](500) NULL, CONSTRAINT [PK_PhonePayRequest] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO CREATE TABLE [dbo].[PhonePayRespone]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [Code] [nvarchar](max) NULL, [MerchantId] [nvarchar](max) NULL, [TransactionId] [nvarchar](max) NULL, [Amount] [money] NULL, [ProviderReferenceId] [nvarchar](max) NULL, [Param1] [nvarchar](max) NULL, [Param2] [nvarchar](max) NULL, [Param3] [nvarchar](max) NULL, [Param4] [nvarchar](max) NULL, [Param5] [nvarchar](max) NULL, [Param6] [nvarchar](max) NULL, [Param7] [nvarchar](max) NULL, [Param8] [nvarchar](max) NULL, [Param9] [nvarchar](max) NULL, [Param10] [nvarchar](max) NULL, [Param11] [nvarchar](max) NULL, [Param12] [nvarchar](max) NULL, [Param13] [nvarchar](max) NULL, [Param14] [nvarchar](max) NULL, [Param15] [nvarchar](max) NULL, [Param16] [nvarchar](max) NULL, [Param17] [nvarchar](max) NULL, [Param18] [nvarchar](max) NULL, [Param19] [nvarchar](max) NULL, [Param20] [nvarchar](max) NULL, [Checksum] [nvarchar](max) NULL, [FullString] [nvarchar](max) NULL, [EntryDateTime] [datetime] NULL, [MerchantOrderId] [nvarchar](500) NULL, CONSTRAINT [PK_PhonePayRespone] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO Alter Table PurchaseMaster Add VoucharNo nvarchar(max) Go Alter Table Transactions add PaymentType NVARCHAR(Max) Go CREATE TABLE [dbo].[PaymentType]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [PaymentTypeName] [nvarchar](max) NULL, [PaymentType] [nvarchar](max) NULL, [EntryDateTime] [datetime] NULL, [LastUpdateTime] [datetime] NULL, [EntryBy] [nvarchar](max) NULL, CONSTRAINT [PK_PaymentType] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO Alter Table JournalVoucher Add InvoiceNo nvarchar(max) GO CREATE INDEX IX_CustomerMaster_AllowLoginView ON CustomerMaster (isAllowAllLoginView) GO CREATE INDEX IX_BranchMaster_BranchID ON BranchMaster (BranchID) GO CREATE INDEX IX_CustomerLoginMapping_LoginID_CustomerID ON CustomerLoginMapping (LoginID, CustomerID) GO CREATE INDEX IX_Transactions_CustomerID ON Transactions (CustomerID) GO CREATE INDEX IX_CustomerMaster_BranchID ON CustomerMaster (BranchID) GO CREATE INDEX IX_Ledger_CustomerID ON Ledger (CustomerID) Go Alter Table PaymentType Add BranchID bigint GO Alter Table Contra Add InvoiceNo nvarchar(max) GO ALter Table PurchaseMaster Add VoucharType Nvarchar(max) GO ALter Table MetalSales Add VoucharType Nvarchar(max) GO ALter Table Contra Add VoucharType Nvarchar(max) GO ALter Table JournalVoucher Add VoucharType Nvarchar(max) Go Alter Table PaymentType Add GSTNo nvarchar(max) Go Alter Table PaymentType Add VoucharTypeAddress nvarchar(max) Go Alter Table PaymentType Add AccountGroupID bigint Go Alter Table MetalSales Add VoucharTypeGSTNo nvarchar(max) Go Alter Table MetalSales Add VoucharTypeAddress nvarchar(max) Go Alter Table MetalSales Add VoucharTypeID bigint Go Alter Table MetalSales Add VoucharTypeTradeName nvarchar(max) Go Alter Table MetalSales Add VoucharTypeCityName nvarchar(max) Go Alter Table MetalSales Add VoucharTypePhoneNO nvarchar(max) Go Alter Table MetalSales Add VoucharTypeEmail nvarchar(max) Go Alter Table PaymentType Add VoucharTypeTradeName nvarchar(max) Go Alter Table PaymentType Add VoucharTypeCityName nvarchar(max) Go Alter Table PaymentType Add VoucharTypePhoneNO nvarchar(max) Go Alter Table PaymentType Add VoucharTypeEmail nvarchar(max) Go Alter Table PaymentType Add VoucharTypePinCode nvarchar(max) Go Alter Table MetalSales Add VoucharTypePinCode nvarchar(max) Go Alter Table PurchaseMaster Add FromVoucharTypeID bigint Go Alter Table PurchaseMaster Add ToVoucharTypeID bigint Go Alter Table DeliveryReceiptNote Add VoucharTypeID bigint GO Alter Table PurchaseMaster Add TradeRate bigint GO Alter Table SBIRequest Add SBIReqTokenID bigint GO Alter Table SBIRequest Add ResponeJson nvarchar(MAX) GO Alter Table SBIRequest Add ActualResponeJson nvarchar(MAX) GO Alter Table DeliveryChallan Add ModeOfDelivery nvarchar(Max) GO Alter Table MetalSales Add PenaltyAmount money GO CREATE TABLE [dbo].[AddressMaster]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [AddressName] [nvarchar](max) NULL, [Address] [nvarchar](max) NULL, [EntryUserName] [nchar](200) NULL, [EntryDateTime] [datetime] NULL, [LastUpdateTime] [datetime] NULL, CONSTRAINT [PK_AddressMaster] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO Alter Table DeliveryChallan Add AddressID bigint GO Alter Table DeliveryChallan Add CaptureTime DateTime GO ALTER PROC [dbo].[SetDynamicSequenceforInvoiceNo2](@TableName NVARCHAR(50),@Startno int) AS BEGIN DECLARE @SQLSelectQuery NVARCHAR(MAX)='' SET @SQLSelectQuery = 'ALTER SEQUENCE [' + @TableName +'] RESTART WITH '+ CONVERT(nvarchar, @Startno) IF ( EXISTS( SELECT * FROM sys.sequences WHERE name = @TableName)) BEGIN exec(@SQLSelectQuery) END else BEGIN exec('CREATE SEQUENCE ['+ @TableName+'] START WITH 1 INCREMENT BY 1') exec(@SQLSelectQuery) END END GO ALTER PROC [dbo].[SetDefaultDynamicSequenceforInvoiceNo2](@TableName NVARCHAR(50)) AS BEGIN DECLARE @SQLSelectQuery NVARCHAR(MAX)='' SET @SQLSelectQuery = 'ALTER SEQUENCE [' + @TableName +'] INCREMENT BY 1' IF ( EXISTS( SELECT * FROM sys.sequences WHERE name = @TableName)) BEGIN exec(@SQLSelectQuery) END else BEGIN exec('CREATE SEQUENCE ['+ @TableName+'] START WITH 1 INCREMENT BY 1') exec(@SQLSelectQuery) END END GO CREATE TABLE [dbo].[AxisRequest]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [UTR] [nvarchar](max) NULL, [Bene_acc_no] [nvarchar](max) NULL, [Req_type] [nvarchar](max) NULL, [Req_date] [nvarchar](max) NULL, [Txn_amnt] [nvarchar](max) NULL, [Pmode] [nvarchar](max) NULL, [Sndr_acnt] [nvarchar](max) NULL, [Sndr_nm] [nvarchar](max) NULL, [Sndr_ifsc] [nvarchar](max) NULL, [Corp_code] [nvarchar](max) NULL, [Tran_id] [nvarchar](max) NULL, [ResponrJson] [nvarchar](max) NULL, [LastUpdateTime] [datetime] NULL, CONSTRAINT [PK_AxisRequest] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO Alter Table MetalSales Add trdTradeNo nvarchar(MAX) GO CREATE TABLE [dbo].[PurchaseOrder]( [PurchaseID] [bigint] IDENTITY(1,1) NOT NULL, [SupplierID] [bigint] NULL, [PurchaseDate] [smalldatetime] NOT NULL, [NoOfPieces] [money] NULL, [Quantity] [money] NOT NULL, [Rate] [money] NULL, [Value] [money] NULL, [VATAmount] [money] NULL, [InvoiceNo] [nvarchar](max) NULL, [CreditDebit] [nvarchar](max) NULL, [ProductID] [bigint] NULL, [BranchID] [bigint] NULL, [EntryUsername] [nvarchar](max) NULL, [LastUpdateTime] [smalldatetime] NULL, [Extra1] [nvarchar](max) NULL, [Extra2] [nvarchar](max) NULL, [Extra3] [nvarchar](max) NULL, [Extra4] [nvarchar](max) NULL, [SupplierName] [nvarchar](max) NULL, [ConnectedPurchaseID] [bigint] NULL, [LedgerVoucherNo] [bigint] NULL, [ProductStatusID] [bigint] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [TCS] [money] NULL, [TDSCreditVoucherNo] [bigint] NULL, [TDSDebitVoucherNo] [bigint] NULL, [TaxType] [nvarchar](max) NULL, [TotalAmount] [money] NULL, [SGSTVoucherNo] [int] NULL, [CGSTVoucherNo] [int] NULL, [IGSTVoucherNo] [int] NULL, [PurcherBookVoucherNo] [int] NULL, [TCSCreditVoucherNo] [int] NULL, [TCSDebitVoucherNo] [int] NULL, [VoucherID] [bigint] NULL, [PurchaseLedgerID] [bigint] NULL, [TallyGUID] [nvarchar](max) NULL, [IsTallySync] [nvarchar](10) NULL, [TallySyncDate] [datetime] NULL, [TDS] [money] NULL, [BarNo] [varchar](2000) NULL, [InwardDate] [datetime] NULL, [BusinessVerticalID] [int] NULL, [EntryTime] [smalldatetime] NULL, [trdId] [nvarchar](max) NULL, [DeliveryReceiptNoteID] [bigint] NULL, [RoundOff] [money] NULL, [RoundOffVoucherNo] [bigint] NULL, [CalculationOn] [int] NULL, [JournalVoucherID] [bigint] NULL, [TradeID] [bigint] NULL, [TradeNo] [nvarchar](max) NULL, [VoucharNo] [nvarchar](max) NULL, [VoucharType] [nvarchar](max) NULL, [FromVoucharTypeID] [bigint] NULL, [ToVoucharTypeID] [bigint] NULL, [TradeRate] [bigint] NULL, CONSTRAINT [PK_PurchaseOrder] PRIMARY KEY CLUSTERED ( [PurchaseID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[PurchaseOrder] WITH CHECK ADD CONSTRAINT [FK_PurchaseOrder_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO ALTER TABLE [dbo].[PurchaseOrder] CHECK CONSTRAINT [FK_PurchaseOrder_BranchMaster] GO ALTER TABLE [dbo].[PurchaseOrder] WITH CHECK ADD CONSTRAINT [FK_PurchaseOrder_CustomerMaster] FOREIGN KEY([SupplierID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[PurchaseOrder] CHECK CONSTRAINT [FK_PurchaseOrder_CustomerMaster] GO ALTER TABLE [dbo].[PurchaseOrder] WITH CHECK ADD CONSTRAINT [FK_PurchaseOrder_ProductMaster] FOREIGN KEY([ProductID]) REFERENCES [dbo].[ProductMaster] ([ProductID]) GO ALTER TABLE [dbo].[PurchaseOrder] CHECK CONSTRAINT [FK_PurchaseOrder_ProductMaster] GO GO Alter Table PurchaseOrder Add PurchaseMasterID bigint GO Alter Table PurchaseMaster Add PurchaseOrderID bigint GO CREATE TABLE [dbo].[UnfixSalesMap]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [trdID] [bigint] NULL, [SalesID] [bigint] NULL, [Quantity] [money] NULL, [EntryDateTime] [datetime] NULL, [EntryUserName] [nvarchar](max) NULL, CONSTRAINT [PK_UnfixSalesMap] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO Alter Table DeliveryChallan Add Quantity money GO CREATE TABLE [dbo].[DebitCreditNoteLedger]( [NoteID] [bigint] IDENTITY(1,1) NOT NULL, [CustomerID] [bigint] NULL, [NoteDate] [smalldatetime] NULL, [BranchID] [bigint] NULL, [ProductID] [bigint] NULL, [Rate] [money] NULL, [VAT] [money] NULL, [TotalRate] [money] NULL, [InvoiceNo] [nvarchar](100) NULL, [DebitCredit] [nvarchar](100) NULL, [LedgerVoucherNo] [bigint] NULL, [CGST] [money] NULL, [SGST] [money] NULL, [IGST] [money] NULL, [ReverseChargeYN] [nvarchar](50) NULL, [ModeOfDelivery] [nvarchar](1000) NULL, [Remark] [nvarchar](1000) NULL, [CreditDebitVoucherNo] [bigint] NULL, [VoucherID] [bigint] NULL, [TallyGUID] [nvarchar](max) NULL, [IsTallySync] [nvarchar](10) NULL, [TallySyncDate] [datetime] NULL, [CGSTVoucherNo] [bigint] NULL, [SGSTVoucherNo] [bigint] NULL, [IGSTVoucherNo] [bigint] NULL, [BusinessVerticalID] [int] NULL, [EntryTime] [smalldatetime] NULL, [OtherRefNo] [nvarchar](max) NULL, [OtherRefNoDate] [datetime] NULL, [Extra1] [nvarchar](max) NULL, [Extra2] [nvarchar](max) NULL, [Extra3] [nvarchar](max) NULL, [AckNo] [nvarchar](max) NULL, [AckDt] [nvarchar](max) NULL, [Quantity] [money] NULL, CONSTRAINT [PK_DebitCreditNoteLedger] PRIMARY KEY CLUSTERED ( [NoteID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[DebitCreditNoteLedger] WITH CHECK ADD CONSTRAINT [FK_DebitCreditNoteLedger_BranchMaster] FOREIGN KEY([BranchID]) REFERENCES [dbo].[BranchMaster] ([BranchID]) GO ALTER TABLE [dbo].[DebitCreditNoteLedger] CHECK CONSTRAINT [FK_DebitCreditNoteLedger_BranchMaster] GO ALTER TABLE [dbo].[DebitCreditNoteLedger] WITH CHECK ADD CONSTRAINT [FK_DebitCreditNoteLedger_CustomerMaster] FOREIGN KEY([CustomerID]) REFERENCES [dbo].[CustomerMaster] ([CustomerID]) GO ALTER TABLE [dbo].[DebitCreditNoteLedger] CHECK CONSTRAINT [FK_DebitCreditNoteLedger_CustomerMaster] GO ALTER TABLE [dbo].[DebitCreditNoteLedger] WITH CHECK ADD CONSTRAINT [FK_DebitCreditNoteLedger_Ledger] FOREIGN KEY([LedgerVoucherNo]) REFERENCES [dbo].[Ledger] ([VoucherNo]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[DebitCreditNoteLedger] CHECK CONSTRAINT [FK_DebitCreditNoteLedger_Ledger] GO ALTER TABLE [dbo].[DebitCreditNoteLedger] WITH CHECK ADD CONSTRAINT [FK_DebitCreditNoteLedger_ProductMaster] FOREIGN KEY([ProductID]) REFERENCES [dbo].[ProductMaster] ([ProductID]) GO ALTER TABLE [dbo].[DebitCreditNoteLedger] CHECK CONSTRAINT [FK_DebitCreditNoteLedger_ProductMaster] GO GO Alter Table DebitCreditNoteLedger Add LedgerID bigint Go Alter Table BranchBankDetails Add CustomerID bigint GO CREATE TABLE [dbo].[CustomerAddressList]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [CustomerID] [bigint] NULL, [HeadName] [nvarchar](max) NULL, [AddressLine1] [nvarchar](max) NULL, [AddressLine2] [nvarchar](max) NULL, [AddressLine3] [nvarchar](max) NULL, [StateID] [bigint] NULL, [Pincode] [nchar](10) NULL, [GSTID] [nvarchar](max) NULL, [Mobile] [nvarchar](max) NULL, [ContactPerson] [nvarchar](max) NULL, [Email] [nvarchar](max) NULL, CONSTRAINT [PK_CustomerAddressList] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO Alter Table MetalSales add CustomerAddressID bigint GO Alter Table DeliveryChallan Add DCInvoiceNo nvarchar(MAX) GO Update DeliveryChallan Set DCInvoiceNo=VoucherNo Where ISNULL(DCInvoiceNo,'')='' GO Alter Table MetalSales add CustomerAddressID2 bigint GO Alter Table PaymentType Add StateID bigint GO Alter Table UnfixSalesMap Add DebitCreditNoteID bigInt GO Alter Table UnfixSalesMap Add Rate money GO Alter Table UnfixSalesMap Add trdQuantity money GO Alter Table UnfixSalesMap Add trdRate money GO Alter Table ProductMaster Add BusinessVerticalID bigint GO CREATE TABLE [dbo].[MiniadminUserNameList]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [MiniadminUserName] [nvarchar](50) NULL, [IsActive] [bit] NULL, CONSTRAINT [PK_MiniadminUserNameList] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO GO CREATE TABLE [dbo].[MiniadminUserNamePaymentDetails]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [MiniadminUserName] [nvarchar](50) NULL, [PaymentDate] [datetime] NULL, [EntryDateTime] [datetime] NULL, CONSTRAINT [PK_MiniadminUserNamePaymentDetails] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO GO Alter Table UnfixSalesMap Add VoucharID bigInt GO Alter Table PaymentType Add VoucharTypePosition bigint GO CREATE TABLE [dbo].[StockTransferGodownToGodown]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [InvoiceNo] [nvarchar](max) NULL, [BranchID] [bigint] NULL, [FromGodownID] [bigint] NULL, [ToGodownID] [bigint] NULL, [ProductID] [bigint] NULL, [Qty] [money] NULL, [Rate] [money] NULL, [Amount] [money] NULL, [Remark] [nvarchar](max) NULL, [EntryDateTime] [datetime] NULL, [EntryUserName] [nvarchar](50) NULL, [LastUpdateDateTime] [datetime] NULL, [VoucharDate] [datetime] NULL, CONSTRAINT [PK_StockTransferGodownToGodown] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO alter Table StockTransferGodownToGodown Add TallyGUID Nvarchar(MAX) GO Alter Table VoucherSetting Add RegexString nvarchar(Max) GO CREATE TABLE [dbo].[TallyXMLConfig]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [VoucharType] [nvarchar](500) NULL, [HeaderXML] [nvarchar](max) NULL, [DetailsXML] [nvarchar](max) NULL, [FooterXML] [nvarchar](max) NULL, [EntryDateTime] [datetime] NULL, [EntryUserBy] [nvarchar](50) NULL, [LastUpdateTime] [datetime] NULL, CONSTRAINT [PK_TallyXMLConfig] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO CREATE TABLE [dbo].[MetalSalesTrades]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [SalesID] [bigint] NULL, [trdId] [bigint] NULL, [trdTradeNo] [bigint] NULL, [EntryDateTime] [datetime] NULL, CONSTRAINT [PK_MetalSalesTrades] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO GO Alter table PurchaseDetails Add BarNo nvarchar(MAX) GO CREATE TABLE [dbo].[RepxHistory]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [FileType] [nvarchar](max) NULL, [FileName] [nvarchar](max) NULL, [LocalFileName] [nvarchar](max) NULL, [EntryDateTime] [datetime] NULL, [EntryUserName] [nvarchar](50) NULL, [OTP] [nvarchar](50) NULL, CONSTRAINT [PK_RepxHistory] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO alter Table DynamicReport Add SqlQuery Nvarchar(MAX) GO Alter Table StockDebitCreditNote add RoundOff Money GO CREATE TABLE [dbo].[OpenAIPrompt]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [Prompt] [nvarchar](max) NULL, [ResponseJson] [nvarchar](max) NULL, [EntryDateTime] [datetime] NULL, [EntryUserBy] [nvarchar](50) NULL, CONSTRAINT [PK_OpenAIPrompt] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO Alter Table SilverBarNumberMaster Add PurchaseID bigint GO alter Table TallyXMLConfig Add CGSTXML nvarchar(MAX) GO alter Table TallyXMLConfig Add SGSTXML nvarchar(MAX) GO alter Table TallyXMLConfig Add IGSTXML nvarchar(MAX) GO alter Table TallyXMLConfig Add RoundoffXML nvarchar(MAX) GO alter Table TallyXMLConfig Add LedgerXML nvarchar(MAX) GO CREATE TABLE [dbo].[ChirayuAntivirusList]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [IPAddress] [nvarchar](50) NULL, [LastupDatetime] [datetime] NULL, CONSTRAINT [PK_ChirayuAntivirusList] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE [dbo].[AWSIgnoreServer]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [ServerName] [nvarchar](max) NULL, [IPAddress] [nvarchar](50) NULL, CONSTRAINT [PK_AWSIgnoreServer] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO GO Alter Table CustomerMaster Add MarginExtendDays nvarchar(50) GO Alter Table ProductGroup Add MinimumRate money GO Alter Table ProductGroup Add MaximumRate money GO Alter Table ValueDate Add GoldPenalty money GO Alter Table ValueDate Add SilverPenalty money GO ALter Table ValueDate Add GoldGM money GO ALter Table ValueDate Add SilverKG money GO Alter Table PurchaseMaster Add isUnFix bit GO CREATE TABLE [dbo].[CustomerCriditLimit]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [CustomerID] [bigint] NULL, [Amount] [money] NULL, [CreditDate] [datetime] NULL, [EntryUserBy] [nvarchar](50) NULL, [EntryDateTime] [datetime] NULL, CONSTRAINT [PK_CustomerCriditLimit] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO GO CREATE TABLE [dbo].[LogisticsMaster]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](max) NULL, [NickName] [nvarchar](max) NULL, [MobileNo] [nvarchar](50) NULL, [Addrress] [nvarchar](max) NULL, [EntryUserBy] [nvarchar](50) NULL, [EntryDateTime] [datetime] NULL, [LastUpdateTime] [datetime] NULL, CONSTRAINT [PK_LogisticsMaster] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO Alter Table DeliveryChallan Add LogisticsID bigint GO Alter Table Transactions Add JournalVoucherID bigINT GO CREATE TABLE [dbo].[CashPartyDetails]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [SalesID] [bigint] NULL, [Name] [nvarchar](max) NULL, [MobileNO] [nvarchar](max) NULL, [Address] [nvarchar](max) NULL, [GSTNO] [nvarchar](max) NULL, [LastUpdateTime] [datetime] NULL, CONSTRAINT [PK_CashPartyDetails] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO