Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

  • Lease Revenue with Recurring

Use Salesforce Invoice Line view to create Amortization schedules to record revenue. Do not deduct inventory again.

For Order with Record Type = Tech Install/Self Install - Rental

  • Product Family for the Product on Salesforce Invoice Line != FRP

  • Accounting Posting Group for the Account = Lease Revenue

  • Order Record Type contains Rental. // better to use this filter to separate records from Upfront

  • Charge Type = ‘Recurring' OR Product.Sub Category = ‘DISCOUNT’ OR 'DOWN_PAYMENT'

  • Amortization Line is not blank

  • Invoice Status = Posted

Populate Amortization Line on Invoice Lines

Look at the Account Posting Group setup and Sales Tax setup, based on Country,

...

Table of Contents
minLevel1
maxLevel6
outlinefalse
typelist
printablefalse

...

image-20240315-154353.pngImage Removed

Setups

Company Setup

...

Field Name

...

Help

...

Lease Receivable G/L Account

...

Lookup(GL Account)

...

Account Sales Tax Payable

...

Lookup(GL Account)

...

Default Loan Interest Rate

...

Default Interest Rate(%) uses in the amoritization calculation, unless overwritten by Product2.GF_Interest_Rate__c

Account Posting Setup

...

Field Name

...

Help

...

Interest Income G/L Account

...

Lookup(GL Account)

...

Write-Off G/L Account

...

Lookup(GL Account)

Product

Field Name

Help

Sub Category

DISCOUNT, DOWN_PAYMENT

...

Criteria

  • For Accounts with Account Posting Group = Lease Revenue

  • For Salesforce Invoice Lines with Charge Type = Recurring

Salesforce Invoice Line Views

Field Name

Help

Ready for Amortization Calculation

Formula:

  1. Account Posting Group = Lease Revenue

  2. Order Record Type contains Rental

  3. Invoice Status = ‘Posted’

  4. Order Product != ''

  5. Lease Amortization Line = ''

  6. Product Family != ‘FRP’

  7. (Charge Type = ‘Recurring' OR Product.Sub Category = ‘DISCOUNT’ OR 'DOWN_PAYMENT')

Code Block
ISPICKVAL( blng__InvoiceLineStatus__c ,'Posted') 
&& NOT(ISBLANK( blng__OrderProduct__c ))
&& ISBLANK( Lease_Amortization_Line__c ) 
&& (
ISPICKVAL(blng__ChargeType__c,'Recurring') 
|| ISPICKVAL( blng__Product__r.Sub_Category__c, 'DISCOUNT') 
|| ISPICKVAL(blng__Product__r.Sub_Category__c, 'DOWN_PAYMENT')
)
Lease Amortization Line
Lookup(

Lease

...

Create Amortization from Salesforce Invoice Lines

Salesforce Invoice Line List Views

First SF Invoices Lines w/o AMT Lines

Filters:

  • First Invoice = True

  • Lease Amortization Line = ‘'

  • Ready for Amortization Calculation = True

Lease First SF Invoices Lines with AMT Lines

...

...

  • First Invoice = True

  • Lease Amortization Line != ‘'

Lease Monthly SF Inv. Lines with AMT Lines

Filters:

  • First Invoice = False

  • Lease Amortization Line != ‘'

Lease Monthly SF Inv. Lines w/o AMT Lines

...

  • First Invoice = False

  • Lease Amortization Line = ‘'

  • Ready for Amortization Calculation = True

Drawio
mVer2
zoom1
simple0
inComment0
custContentId2934767623
pageId2912845825
lbox1
diagramDisplayNameUntitled Diagram-1710517386211.drawio
contentVer1
revision1
baseUrlhttps://mdnusa.atlassian.net/wiki
diagramNameUntitled Diagram-1710517386211.drawio
pCenter0
width801
links
tbstyle
height400.5

image-20240315-154353.pngImage Added

Setups

Company Setup

Field Name

Help

Lease Receivable G/L Account

Lookup(GL Account)

Default Loan Interest Rate

Default Interest Rate(%) uses in the amoritization calculation, unless overwritten by Product2.GF_Interest_Rate__c

Account Posting Setup

Field Name

Help

Interest Income G/L Account

Lookup(GL Account)

Write-Off G/L Account

Lookup(GL Account)

Account Sales Tax Payable

Lookup(GL Account)

Product

Field Name

Help

Sub Category

DISCOUNT, DOWN_PAYMENT

Salesforce Invoice Line

Field Name

Help

Ready for Amortization Calculation

Lease Amortization Line

Lookup(Lease Amortization Line)

Create Amortizations Manually

Create Amortization from Salesforce Invoice Lines

  • Navigate to Salesforce Invoice Line - First SF Invoice Lines w/o AMT Lines view

    • Select the lines you want to create Amortization Entries for.

    • Click the Create Amortization Entries button

      • Use Country (Invoice__r.Currency), Account Posting Group (from Account), Charge Type, and Filter Replace Plan to look for Account Posting Setup, then populate these fields on the Amortization Schedule:

        • Account Posting Setup

        • Write-off GL Account (from Account Posting Setup)

        • Revenue GL Account (from Account Posting Setup)

        • Sales Tax GL Account (from Account Posting Setup)

...

  • Navigate to theLease First SF Invoice Lines with AMT Lineslist view.

  • Click on the Salesforce Invoice record to view the amortization entries generated for the invoice in the Lease Amortizations section.

    image-20240313-212249.png

Amortization Schedule

  • The system will create one Lease Amortization Schedule per Order Product if If there are multiple invoice lines with different Order Products, the system will create one lease amortization schedule per order product.

  • The principal amount P(LR Booked Amount) is calculated using this formula:

...

  • When processing the invoice lines, the system will sort sorts them by the Start Date . Then, it’ll process the invoice lines and then processes them sequentially.

  • The system will create at least two Lease Amortization Lines entries from First Invoice Line:

    • Initial Entry

      • Lease Receivable = LR Booked Amount

    • Monthly Entry

      • It will calculate the Remaining Principal Amount = LR Booked Amount - Total LR Amount Paid

      • Interest Amount = Remaining Principal Amount * Interest Rate / 100 / 12

      • Lease Receivable = MRR Amount - Interest Amount

      • Tax = Salesforce Invoice Line Tax Amount

      • Invoice Amount = Salesforce Invoice Line Total Amount

...

Field Name

Help

Customer

blng_Account__c

First Invoice

Salesforce Invoice > First Invoice = True

Fully Paid

Formula(Total LR Amount Paid = LR Booked Amount)

Interest Income GL Account

Lease Receivable GL Account

Write-Off GL Account

Revenue GL Account

Interest Rate

Company Default > Default Loan Interest Rate, Can be overwritten by Product > GF_Interest_Rate__c

Item

Invoice Line > Product > Item

LR Booked Amount

Calculated Principal Amount

MRR Amount

Invoice Line > Order Product > Billable Unit Price

Open Lines

Roll-Up Summary COUNT Lease Amortization Line (Post != True)

Order Product

Invoice Line > Order Product (One Order Product per Lease Amortization)

Original Ownership

Order Product > Original Ownership

Sales Tax GL Account

Starting Date

Invoice Line > Start Date

Term

Invoice > Invoice Line > Product > Product_Contract_Term__c

Total Discount

Roll-Up Summary (SUM Lease Amortization Line Lease: Discount Amount)

Total Interest Paid

Roll-Up Summary (SUM Lease Amortization Line Lease: Interest Amount)

Total Invoice Amount

Roll-Up Summary (SUM Lease Amortization Line Lease: Invoice Amount)

Total Lines

Roll-Up Summary COUNT Lease Amortization Line

Total LR Amount Paid

Roll-Up Summary (SUM Lease Amortization Line: Lease Receivable), Line Type = Monthly Entry

Down Payment Amount

Roll-Up Summary (SUM Lease Amortization Line Lease: Down Payment Amount)

Cancelled

True if Lease Amoritization Amortization is cancelled canceled using the Cancel Lease button

Currency

GL Ledger

From order’s Warehouse

...

Field Name

Help

Type

INITIAL_ENTRY, MONTHLY_ENTRY,DOWN_PAYMENT,DISCOUNT,CANCELLATION

Invoice Date

SF Invoice Posting Date

Invoice Amount

SF Invoice Line: TotalAmount. (Include Tax)

Lease Receivable

MRR Amount

Monthly Payment Amount

Posted

True if the line is posted

SF Invoice Line Calculated Qty.

SF Invoice Line: Calcualted Quantity

Tax Amount

SF Invoice Line: TaxAmount

Interest Amount

Discount Amount

Down Payment Amount

SF Sales Invoice

SF Sales Invoice Line

Currency

Create Monthly Amortization Entries From Invoice Lines (Salesforce Invoice Line)

  • Navigate to the Lease Monthly SF Inv. Lines w/o AMT Lines Invoice Line list view.

  • Select the Invoice Lines for which you want to create monthly amortization entries.

  • Click the Create Amortization Entries button to initiate the process.

    image-20240314-001534.png

  • The system will search for exiting Lease Amortization using Salesforce Invoice Line’s Order Product, if the Order Product has a Lease Amortization record, then the routine will use the Salesforce Invoice Line data to create a Monthly Amortization Entry under the linked Lease Amortization.

...

  • When processing the invoice lines, the system will sort sorts them by the Start Date . Then, it’ll process the invoice lines and then processes them sequentially.

  • It will calculate the Remaining Principal Amount = LR Booked Amount - Total LR Amount Paid

  • Monthly Entry

    • Interest Amount = Remaining Principal Amount * Interest Rate / 100 / 12

    • Lease Receivable = MRR Amount - Interest Amount

Create Amortizations Automatically

  • Use the Hourly routine configured on the Job Scheduler, with Job name = “Create Lease Amortizations” and Class name GF_CreateLeaseAmortizationSched

  • All errors will be displayed in the field Error Message.

  • Batch size = 1

  • Need to create a view to display the error.

Cancel an Amortization

  • Navigate to the Lease Amortization record that you want to cancel.

  • Click the Cancel Lease button to initiate the process.

    image-20240306-225454.png
  • A cancellation entry will be inserted into the amortization schedule.

    • Lease Receivable = LR Booked Amount - Total LR Amount Paid

    • Invoice Date = Today()

    • The system will flag the amortization as canceled.

Manual Post & Un-Post Amortization GL Enries

Lease Amortization Line List Views

...

  • The system will create reverse G/L entries if un-post is successfully run.

    • Sample reverse entries:

...

Automatic Post Amortization GL Entries

  • Use the Hourly routine configured on the Job Scheduler, with Job name = “Post Amortization GL Entries” and Class name GF_PostAmortizationEntriesSched

  • All errors will be displayed in the field Error Message.

  • Batch size = 1

  • Need to create a view to display the error.

Open Questions/To Dos

  1. Work with Umair to create and test different test cases:

    1. Salesforce Invoice with one product

    2. Salesforce Invoice with multiple products.

    3. Salesforce Invoice with discount

    4. Salesforce Invoice with sales tax (Texas charges Sales Tax on the first invoice?)

      1. SW: Please send some examples.

    5. Salesforce invoice with downpayment

      1. SW: Need the Home Water team to create test invoices with a down payment line

    6. Excel Sheet with Examples

      1. https://microdatanet1988.sharepoint.com/:x:/s/Clients/ES-9cKPQSJtKjv2iacvcnsoBie47orn_Gk8W_rOBTOMsPw?e=shJ7lo

    GL Accounts for Posting?

    1. GL Ledger - Should go to Salesforce Invoice__r.Salesforce Order__r.Warehouse__r.GL_Ledger__c

    2. Should add GL Ledger to the Amortization Schedule

    3. SW: Currently, the System is assigning GL Ledger to GL Entry by CurrencyCode.
  2. Go Live, how should we handle open invoices?

    1. if we mass-create GF invoices and Amortization entries for existing Salesforce Invoices will it cause GL issues? such as double count?

  3. The current First Invoice flag does not work on Renewed subscriptions, it does not flag the First Invoice of the renewed subscription!!!

...