use ATNDBTest 
go

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[OfficePeriodFactorHeaderBridge](
	[Serial] [bigint] NOT NULL,
	[InaugurationFactorHeaderRef] [bigint] NULL,
	[InaugurationOfficePeriodRef] [int] NULL,
	[ConclusionFactorHeaderRef] [bigint] NULL,
	[ConclusionOfficePeriodRef] [int] NULL,
 CONSTRAINT [PK_OfficePeriodFactorHeaderBridge] PRIMARY KEY CLUSTERED 
(
	[Serial] 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

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'شماره سریال سند موجودی ابتدای دوره در دوره مالی جدید  در این ستون نگهداری می گردد ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'OfficePeriodFactorHeaderBridge', @level2type=N'COLUMN',@level2name=N'InaugurationFactorHeaderRef'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'شماره سریال سند موجودی پایان دوره در دوره مالی قبلی که از روی آن سند موجودی ابتدای دوره در دوره مالی جدید تولید شده است در این ستون نگهداری می گردد ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'OfficePeriodFactorHeaderBridge', @level2type=N'COLUMN',@level2name=N'ConclusionFactorHeaderRef'
GO

--//////////////////////////////////////////////////////////////////////////////////////////////////////
--//////////////////////////////////////////////////////////////////////////////////////////////////////
--//////////////////////////////////////////////////////////////////////////////////////////////////////
--//////////////////////////////////////////////////////////////////////////////////////////////////////

Declare @X bigint = isnull((Select MAX(Serial) From OfficePeriodFactorHeaderBridge),0)
Insert into OfficePeriodFactorHeaderBridge 
	select	@X+ROW_NUMBER() over(order by OfficePeriod.Serial),
			OfficePeriod.InaugurationFactorDocumentSerial,
			OfficePeriod.Serial,
			OfficePeriod.ConclusionFactorDocumentSerial,
			OfficePeriod.PreviousOfficePeriodSerial
	From OfficePeriod
	where (OfficePeriod.ConclusionFactorDocumentSerial  is not null) Or (OfficePeriod.InaugurationFactorDocumentSerial is not null) 

--//////////////////////////////////////////////////////////////////////////////////////////////////////
--//////////////////////////////////////////////////////////////////////////////////////////////////////
--//////////////////////////////////////////////////////////////////////////////////////////////////////
--//////////////////////////////////////////////////////////////////////////////////////////////////////

BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
ALTER TABLE dbo.OfficePeriod
	DROP COLUMN InaugurationFactorDocumentSerial, ConclusionFactorDocumentSerial
GO
ALTER TABLE dbo.OfficePeriod SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
