﻿
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[backup__fds__getInvoiceTreeIds]
(	
	@invid varchar(20)
)
RETURNS TABLE 
AS
RETURN 
(
	with mfr_inv as (
		SELECT [type] = 'invoice', [id] = [id] FROM [dbo].[mfr__invoices] as _mfri where _mfri.[id] = TRY_CAST(@invid as bigint)
	), mfr_srq as (
		SELECT DISTINCT [type] = 'servicerequest', [id] = mfrs.[id] FROM mfr_inv
			JOIN [dbo].[mfr__*PartnerSet] as ps on Property = 'Invoice:SourceServiceRequest' and ps.EntityId = mfr_inv.[id]
			JOIN [dbo].[mfr__servicerequests] as mfrs on ps.[PartnerId] = mfrs.id
	), fds_srq as (
			SELECT distinct [type] = 'servicerequest', [id] = mfrs.[id]
				FROM [dbo].[fds__invoices] as _fi 
					JOIN [dbo].[fds__invoice_servicerequests] as _fs on _fi.Id = _fs.[InvId] and _fs.[mfr__servicerequest] is not null
					JOIN [dbo].[mfr__servicerequests] as mfrs on _fs.[mfr__servicerequest] = mfrs.id
				WHERE _fi.[Id] = @invid
	)
	SELECT * FROM mfr_inv
	union 
	SELECT * FROM mfr_srq
	union 
	SELECT * FROM fds_srq
)