1. IF OBJECT_ID('tempdb..#InvoiceLookup') IS NOT NULL
BEGIN
DROP TABLE #InvoiceLookup
END
IF OBJECT_ID('tempdb..#LeaseLevelDetail') IS NOT NULL
BEGIN
DROP TABLE #LeaseLevelDetail
END
IF OBJECT_ID('tempdb..#UpgradedLeases') IS NOT NULL
BEGIN
DROP TABLE #UpgradedLeases
END
IF OBJECT_ID('tempdb..#FirstAppearence') IS NOT NULL
BEGIN
DROP TABLE #FirstAppearence
END
IF OBJECT_ID('tempdb..#OldLeases') IS NOT NULL
BEGIN
DROP TABLE #OldLeases
END
IF OBJECT_ID('tempdb..#CombinedOldNew_Upgrades') IS NOT NULL
BEGIN
DROP TABLE #CombinedOldNew_Upgrades
END
IF OBJECT_ID('tempdb..#CumulativePremiums') IS NOT NULL
BEGIN
DROP TABLE #CumulativePremiums
END
IF OBJECT_ID('tempdb..#MiscLeases') IS NOT NULL
BEGIN
DROP TABLE #MiscLeases
END
IF OBJECT_ID('tempdb..#5ColumnAddition') IS NOT NULL
BEGIN
DROP TABLE #5ColumnAddition
END
IF OBJECT_ID('tempdb..#DRV2') IS NOT NULL
BEGIN
DROP TABLE #DRV2
END
IF OBJECT_ID('tempdb..#InvMisc') IS NOT NULL
BEGIN
DROP TABLE #InvMisc
END
IF OBJECT_ID('tempdb..#InvExcess') IS NOT NULL
BEGIN
DROP TABLE #InvExcess
END
IF OBJECT_ID('tempdb..#InvPostExcess') IS NOT NULL
BEGIN
DROP TABLE #InvPostExcess
END
--picks the first instance of misc/e/pe appearance. necessary to obtain the correct
'billed months' parameter for [StandardRentBilled] calculation below
SELECT leaseID, billedmonths, invoicetype, invoicedate, ROW_NUMBER () OVER(PARTITION BY
leaseID ORDER BY invoicedate) AS Instance
INTO #InvoiceLookup
2. FROM lease.vw_lease_Invoice_current
ORDER BY leaseID
SELECT leaseID, SUM(FinalRentAmountDue) AS FRAD, SUM(FinalDeviceAmountDue) AS FDAD
INTO #InvMisc
FROM lease.vw_lease_invoice_current
WHERE InvoiceType = 2
GROUP BY leaseID, InvoiceType
SELECT leaseID, SUM(FinalRentAmountDue) AS FRAD
INTO #InvExcess
FROM lease.vw_lease_invoice_current
WHERE InvoiceType = 3
GROUP BY leaseID, InvoiceType
SELECT leaseID, SUM(FinalRentAmountDue) AS FRAD
INTO #InvPostExcess
FROM lease.vw_lease_invoice_current
WHERE InvoiceType = 4
GROUP BY leaseID, InvoiceType
SELECT DISTINCT
rvclose.LeaseScheduleNumber,
rvclose.RemainingPayments,
rvcurr.Residual_Value
INTO #DRV2
FROM lease.vw_lease_RVatCLosing_current RVclose
LEFT JOIN
Lease.vw_Lease_CurrentRV_current RVcurr
ON YEAR(RVcurr.ResidualValueMonth) = YEAR(DATEADD(mm, 2,
rvclose.LeaseEndingMonth))
AND MONTH(RVcurr.ResidualValueMonth) = MONTH(DATEADD(mm, 2,
rvclose.LeaseEndingMonth))
AND RVcurr.SKU# = (rvclose.Make +' '+ rvclose.Model)
SELECT
a.ScheduleNumber
,a.leaseID
,a.OldLeaseSequenceNumber
,[OldLeaseID] = c.leaseID
,b.createddate
,[FirstAppearence] = ROW_NUMBER () OVER(PARTITION BY b.leaseID ORDER BY b.createddate)
,b.TermStartDate
,[NewMonthlyRent] = b.MonthlyLeaseAmountBilled
,[NewLeaseTermInMonths] = b.terminmonths
INTO #FirstAppearence
FROM lease.vw_lease_current a
INNER JOIN
lease.leaseEquipment b
ON a.leaseID = b.leaseID
INNER JOIN lease.vw_lease_current c
ON a.OldLeaseSequenceNumber = c.LeaseSequenceNumber
WHERE a.OldLeaseSequenceNumber IS NOT NULL
AND a.OldLeaseSequenceNumber <> ''
SELECT
ScheduleNumber
3. ,leaseID
,OldLeaseSequenceNumber
,[OldLeaseID]
,[NewMonthlyRent]
,[NewLeaseTermInMonths]
,TermStartDate
,[FirstLMSAppearence] = createddate
,[FirstInvoiceUnderNewRent] =
CASE
WHEN DATEPART(DAY, createddate) IN (1,2)
THEN CAST(STR(DATEPART(YEAR,createddate))+'-'+
STR(DATEPART(MONTH,createddate)) +'-'+ STR('05') AS DATE)
ELSE CAST(STR(DATEPART(YEAR,createddate))+'-'+ STR(DATEPART(MONTH,DATEADD(MONTH,
1, createddate))) +'-'+ STR('05') AS DATE)
END
INTO #UpgradedLeases
FROM #FirstAppearence
WHERE [FirstAppearence] = 1
SELECT
a.scheduleNumber
,a.leaseID
,a.LeaseSequenceNumber
,[OldLeaseAmount] = b.MonthlyLeaseAmountBilled
,[OldMasterLease] = c.RemainingPayments
,[OldLeasePaymentsRemainingAtUpgrade] = c.RemainingPayments-(DATEDIFF(MONTH,'2-29-
16',@LastInvDt)-1)
,[OldLeaseFinalRent] = b.FinalPaymentAmount
INTO #OldLeases
FROM lease.vw_lease_current a
INNER JOIN lease.vw_LeaseEquipment_current b
ON a.LeaseID = b.LeaseID
AND b.IsActive = 1
INNER JOIN lease.vw_Lease_RVatClosing_current c
on a.ScheduleNumber = c.LeaseScheduleNumber
WHERE LeaseSequenceNumber IN (SELECT OldLeaseSequenceNumber FROM #upgradedleases)
SELECT
a.schedulenumber
,[OldleaseID] = b.leaseID
,[NewLeaseID] = a.leaseID
,a.[FirstLMSAppearence]
,[NewLeaseStartDate] = a.termstartdate
,[NewLeaseTermInMonths] = a.NewLeaseTermInMonths
,[OldMasterLease] = b.[OldMasterLease]
,[OldMonthlyRent] = b.[OldLeaseAmount]
,[OldLeaseFinalRent] = b.OldLeaseFinalRent
,[NewMonthlyRent] = a.[NewMonthlyRent]
,[Premium] = a.[NewMonthlyRent] - b.[OldLeaseAmount]
INTO #CombinedOldNew_Upgrades
FROM #UpgradedLeases a
INNER JOIN #OldLeases b
ON a.oldleasesequencenumber = b.leasesequencenumber
SELECT
a.ScheduleNumber
,a.leaseID
4. ,a.LeaseNumber
,[Standard Rent] = LE.MonthlyLeaseAmountBilled
,[Billed Months] = -- this assumes the month that the report is running has already
undergone invoicing process. (counts current month as billed)
CASE
WHEN up.leaseID IS NULL
AND old.leaseID IS NOT NULL
THEN DATEDIFF(MONTH,DATEADD(MONTH,1,'2-29-16'),c.FirstLMSAppearence) --old
lease
WHEN up.leaseID IS NOT null
THEN DATEDIFF(MONTH,up.FirstLMSAppearence,@LastInvDt) --upgraded lease
WHEN up.leaseID IS NULL --not upgraded
AND old.leaseID IS NULL
THEN
CASE
WHEN Inv.leaseID IS NOT NULL
AND Inv.invoicetype = 2 --misc
THEN DATEDIFF(mm,'2-29-16', Inv.invoicedate) - 2 --
subtracting 2 backs out one month for billing in arrears and one month for the misc inv
WHEN Inv.leaseID IS NOT NULL
AND Inv.invoicetype IN (3,4) --excess or post excess
THEN DRV2.RemainingPayments
ELSE DATEDIFF(MONTH,DATEADD(MONTH,1,'2-29-16'),@LastInvDt) --
still in standard
END
END
,[Upgrade IND] =
CASE
WHEN up.leaseID IS NULL
THEN 0
WHEN up.leaseID IS NOT NULL
THEN 1
END
,[Old Lease IND]=
CASE
WHEN old.leaseID IS NULL
THEN 0
WHEN old.leaseID IS NOT NULL
THEN 1
END
,[Misc IND] =
CASE
WHEN
(
Inv.leaseID IS NOT NULL
AND Inv.invoicetype = 2
)
THEN 1
ELSE 0
END
,[ExcessPostExcess IND] =
CASE
WHEN
(
Inv.leaseID IS NOT NULL
AND Inv.invoicetype IN (3,4)
)
THEN 1
5. ELSE 0
END
--,[-A Tranche IND] =
--CASE
-- WHEN a.TrancheNumber = '-A'
-- THEN 1
-- ELSE 0
--END
,[Standard Rent Billed] =
CASE
WHEN up.leaseID IS NULL
AND old.leaseID IS NOT NULL--dead lease
THEN (DATEDIFF(MONTH,DATEADD(MONTH,1,'2-29-16'),c.FirstLMSAppearence)) *
LE.MonthlyLeaseAmountBilled
WHEN up.leaseID IS NOT null--upgraded lease
THEN (DATEDIFF(MONTH,up.FirstLMSAppearence,@LastInvDt)) *
LE.MonthlyLeaseAmountBilled
WHEN up.leaseID IS NULL
AND old.leaseID IS NULL --not upgraded
THEN
CASE
WHEN Inv.leaseID IS NOT NULL
AND Inv.invoicetype = 2 --misc
THEN (DATEDIFF(mm,'2-29-16', Inv.invoicedate) - 2) *
LE.MonthlyLeaseAmountBilled
WHEN Inv.leaseID IS NOT NULL
AND Inv.invoicetype IN (3,4) --excess or post excess
THEN ((DRV2.RemainingPayments-1) *
LE.MonthlyLeaseAmountBilled)+ LE.FinalPaymentAmount
ELSE (DATEDIFF(MONTH,DATEADD(MONTH,1,'2-29-16'),@LastInvDt)) *
LE.MonthlyLeaseAmountBilled --still in standard
END
END
,[Remaining Residual Value] =
CASE
WHEN Inv.leaseid IS NOT NULL --in excess, post excess, or was misc
THEN
CASE
WHEN DRV2.Residual_Value - ISNULL(InvM.FDAD,0) -
ISNULL(InvE.FRAD,0) - ISNULL(InvPE.FRAD,0) < 0
THEN 0
WHEN DRV2.Residual_Value - ISNULL(InvM.FDAD,0) -
ISNULL(InvE.FRAD,0) - ISNULL(InvPE.FRAD,0) > 0
THEN DRV2.Residual_Value - ISNULL(InvM.FDAD,0) -
ISNULL(InvE.FRAD,0) - ISNULL(InvPE.FRAD,0)
END
ELSE DRV2.residual_value -- still in standard, include full DRV
END
,[Total Accelerated Rent Invoiced] = InvM.FRAD
,[Total Accelerated Device Invoiced] = InvM.FDAD
INTO #LeaseLevelDetail
FROM lease.vw_lease_current a
LEFT JOIN
(SELECT leaseID, billedmonths, invoicetype, invoicedate FROM #InvoiceLookup WHERE
Instance = 1) Inv
6. ON a.LeaseID = Inv.LeaseID
LEFT JOIN
lease.vw_leaseEquipment_current LE
ON a.LeaseID = LE.LeaseID
AND LE.IsActive = 1
LEFT JOIN
lease.vw_leasedetail_current d
ON a.LeaseID = d.LeaseID
LEFT JOIN
#UpgradedLeases up
ON a.LeaseID = up.leaseID
LEFT JOIN
#OldLeases old
ON a.LeaseID = old.leaseID
LEFT JOIN
#CombinedOldNew_Upgrades c
ON a.leaseID = c.oldleaseID
LEFT JOIN
#DRV2 DRV2
ON a.ScheduleNumber = DRV2.LeaseScheduleNumber
LEFT JOIN
#InvMisc InvM
on a.LeaseID = InvM.LeaseID
LEFT JOIN
#InvExcess InvE
on a.LeaseID = InvE.LeaseID
LEFT JOIN
#InvPostExcess InvPE
on a.LeaseID = InvPE.LeaseID
WHERE a.TrancheNumber = '2'
SELECT
b.ScheduleNumber
,b.leaseID
,[Billed Months Under Upgrade] = b.[Billed Months]
,[Monthly Premium] =
CASE
WHEN a.Premium < 0
THEN 0
ELSE a.Premium
END
,[Cumulative Premium] =
CASE
WHEN ((a.OldMasterLease-(DATEDIFF(MONTH,'2-29-16',c.FirstInvoiceUnderNewRent)-2))
* a.NewMonthlyRent)-(((a.OldMasterLease-(DATEDIFF(MONTH,'2-29-
16',c.FirstInvoiceUnderNewRent)-1)) * a.OldMonthlyRent) + a.OldLeaseFinalRent) < 0
THEN 0
7. ELSE ((a.OldMasterLease-(DATEDIFF(MONTH,'2-29-16',c.FirstInvoiceUnderNewRent)-2))
* a.NewMonthlyRent)-(((a.OldMasterLease-(DATEDIFF(MONTH,'2-29-
16',c.FirstInvoiceUnderNewRent)-1)) * a.OldMonthlyRent) + a.OldLeaseFinalRent)
END
INTO #CumulativePremiums
FROM #CombinedOldNew_Upgrades a
INNER JOIN #LeaseLevelDetail b
ON a.newleaseID = b.leaseID
INNER JOIN #UpgradedLeases c
ON a.NewLeaseID = c.LeaseID
WHERE b.[upgrade IND] = 1
SELECT
[ScheduleNumber]
,[LeaseID]
,[DRV] = ISNULL(b.Residual_Value,0)
INTO #MiscLeases
FROM #LeaseLevelDetail a
INNER JOIN #DRV2 b
ON a.ScheduleNumber = b.LeaseScheduleNumber
WHERE [Misc IND] = 1
SELECT
a.ScheduleNumber
,[Standard Rent Billed] = SUM(ISNULL(a.[Standard Rent Billed],0))
,[Remaining Residual Value] = SUM(ISNULL(a.[Remaining Residual Value],0))
,[Monthly Premium] = SUM(ISNULL(B.[Monthly Premium],0))
,[Cumulative Premium] = SUM(ISNULL(B.[Cumulative Premium],0))
,[DRV of Misc Invoiced Leases] = SUM(ISNULL(c.[DRV],0))
,[Total Accelerated Rent Invoiced] = SUM(ISNULL(a.[Total Accelerated Rent Invoiced],0))
,[Total Accelerated Device Invoiced] = SUM(ISNULL(a.[Total Accelerated Device
Invoiced],0))
INTO #5ColumnAddition
FROM #LeaseLevelDetail a
LEFT JOIN #CumulativePremiums b
ON a.leaseID = b.leaseID
LEFT JOIN #MiscLeases c
ON a.leaseID = c.leaseID
GROUP BY a.schedulenumber
SELECT a.*
,b.[Standard Rent Billed]
,b.[Remaining Residual Value]
,b.[Monthly Premium]
,b.[Cumulative Premium]
,b.[DRV of Misc Invoiced Leases]
,b.[Total Accelerated Rent Invoiced]
,b.[Total Accelerated Device Invoiced]
FROM #FinalDynamicTranche a
INNER JOIN #5ColumnAddition b
ON a.[MasterLease Schedule Number] = b.ScheduleNumber