Thursday, May 30, 2024

Fee transaction on the Fixed Price Project in D365 Project Operations (non-stock)

Fee transactions are NOT allowed on the Fixed Price projects in standard D365FO. The "Accrue revenue" button is non-editable for fixed-price projects:

"Accrue revenue" button is non-editable for fixed-price projects

However, when it comes to the Non-Stock version of D365PO (where D365PO is connected to D365FO), the system does not stop you from posting fee transactions (journals) on a fixed-price project. The fee journal is "Confirmed" successfully in ProjOps and the transaction starts appearing under the posted project transaction in D365FO. The only important thing to note is that it generates no vouchers. That means it does not post into the GL. When the "Project statement" is run to check whether it shows any revenue, it doesn't. Please see the screenshots below:

Fee journal posted in D365PO and Actuals generated on the FP Project

Fee transaction appearing in the "Posted project transaction" in D365FO

No voucher was created, as nothing is posted in the GL

No revenue was reported in the sub-ledger as well


When the same fee journal is posted on a T&M project, then the revenue is posted in the GL, on the project sub-ledger and is seen on the project statement. Please see the screenshot below:

Fee journal posted in D365PO and Actuals generated on the T&M Project

Fee transaction appearing in the "Posted project transaction" in D365FO

Voucher was created, as fee journal is posted in the GL

Revenue was reported in the sub-ledger as well

D365PO will still allow you to bill the fee transaction on the fixed-price project.

Fee transaction included on an invoice in D365PO


The invoice once confirmed in D365PO, appears in D365FO.

Invoice for a fee transaction on a fixed-price project in D365FO

Voucher for a fee invoice on a fixed-price project in D365FO

This is the behaviour of a fee transaction on a fixed-price project in D365PO (non-stock).

Intercompany Setup in D365PO (non-stock)

Intercompany Configuration

       Parameter setup in both the legal entities (Borrowing legal entity – Procurement category, Lending Legal entity – Default Hours and Expense category)

       Intercompany customer vendor setup in both the legal entities

       Intercompany setup in the General Ledger setup

       Project category for expenses to be created in both the legal entities

       Procurement categories in both the legal entities for IC Supplier Invoice Test

       For IC Supplier Invoice test, vendor to be created in FinOps and then created in ProjOps

       For IC Expenses test, employee vendor to be created in Lending entity and linked to the employee

       Bookable resource created in Lending entity in ProjOps with correct resource role

       Intercompany Cost and Intercompany Revenue Account in “Ledger posting setup” needs to be setup

       Employee created in Lending entity in FinOps and associated with the User in System Admin module

       Price List

       Two costs price list

       One for Lending entity – On Organisation Unit

       One for Borrowing legal entity (Transfer price) – On organisation Unit

       One sales price list

       One for Borrowing legal entity – On Project Contract (Pay attention to the “Unit schedule” and “Unit” otherwise the sale price is 0)

       Unit

       For Expense (Transaction Category) the Unit should be – Primary Unit

       For Purchase (Transaction Category) the Unit should be – ea

       Hence the “Expense” type of Project Categories used for Out of pocket Expense and Pending supplier invoice (Purchase) should be different

       Customer, Project Contract, Project Contract Line, Project and TASKS created in Borrowing Entity. Tasks are mandatory.

       “Default offset account for expenses” needs to be setup in the Borrowing entity otherwise integration journal does not bring the offset account for the sales posting. System does not use this “Default offset account for expenses”  but it requires it for posting. This is weird but this is true. System still uses the project posting profile.

       Check fiscal period is open in Lending and Borrowing Legal entity

       Exchange rate should be same in ProjOps and FinOps

       Make sure the Unit of Measure are set to – Fixed unit assignment = Yes (otherwise the Free Text Invoice fails)

     Intercompany Price List Configuration

        Price Lists

        UK Cost Price (Type = Cost) – Associated with the loaning entity organization unit

        Role - Robotics Engineer

        Cost price

        US Cost Price (Type = Cost) – Associated with the borrowing entity organization unit

        Role - Robotics Engineer

        Resourcing Company – GBPM

        Resourcing Unit – GBPM

        Cost price

        Demo Sale Price (Type = Sales) – Associated with the borrowing entity project contract

        Role – Robotics Engineer

        Resourcing Company – USPM

        Resourcing Unit – USPM

        Sale price

        Sales price set “At Cost” for Expense and Purchase transaction categories