Skip to content

Agriculture Project Fund Control User Walkthrough

This walkthrough shows how a farm manager can run three coffee farms using project-funded controls in Pinkapple ERP.

The example story is a managed coffee portfolio where the operator receives money from different funders, manages each farm as a project, records field work, pays workers or group leaders, posts accounting entries, and reports how each funder's money was used.

The same flow applies to managed plantations, grant-funded agriculture programs, estate farms, contract farms, and other services that need project/WBS fund control.

Before You Start

Confirm these setup items exist before recording or testing:

Setup ItemOwning ModuleWhat It Is Used For
Agriculture service and capability packsPlatform Admin -> Companies -> Manage ServicesEnables Agriculture pages and seed packs for the tenant.
PartiesPartiesHolds funders, workers, group leaders, supervisors, buyers, and suppliers.
Projects and WBSProjects & WBSHolds project scope, farm cost structure, funding, obligations, and fund reports.
FarmsAgriculture -> Setup -> FarmsHolds the agriculture farm identity and farm partitions.
Payment channelsPayments / Financial SetupUsed when fund receipts and worker payments are settled.
Chart of accounts and posting rulesAccounting / GLUsed when receipts, payments, and settlements post to GL.
Document transaction typesDocument Transactions -> SetupDefines the business meaning of documents such as funding agreements, receipts, work orders, and obligations.

Document numbers are generated by the backend from the selected document type. Users should not type document numbers. Use External Reference for bank slips, paper forms, supplier references, field notebooks, or imported references.

Plain-English Document Types

Document Transaction forms can feel heavy because they are one shared engine used for many business documents. The selected Document Type gives the form its meaning.

Form / DocumentPlain MeaningAccounting Meaning
Funding Source / Project Funding AgreementA funder has approved or committed money for a project.Commitment or authorization. It is not yet cash received.
Fund ReceiptMoney has actually been received from a funder, bank, cash office, wallet, or other channel.Money-in event. This should support cash/bank/clearing and project fund position.
Work OrderWork is planned for a farm or WBS node.No payment yet. It creates operational control.
Field Activity ReportWork was done and evidence was captured.Can support costing, stock, inspection, or obligation creation.
Worker AttendanceA worker group or individuals attended work.Source evidence for labor obligation and payout.
Payment ObligationThe tenant owes someone because approved work, attendance, supply, or service happened.Payable/commitment before payment execution.
Payment BatchThe actual payout run for approved obligations.Payment execution and GL posting.
Cross-Funding RequestOne project/fund temporarily supports another.Creates due-from and due-to exposure until settled.
Cross-Funding SettlementThe borrowed project/fund is repaid or cleared.Closes due-from and due-to exposure.

Demo Projects And Farms

Use three projects so the recording shows real fund separation and cross-project controls.

Demo ProjectFarmFunderBudgetProject StartProject End
Julita Coffee Farm - Mityana Block AMityana Coffee Farm AAston BrownUGX 120,000,0002025-09-012026-12-31
Julita Coffee Farm - Mpigi Block BMpigi Coffee Farm BGrace NakkaziUGX 150,000,0002025-09-012026-12-31
Julita Coffee Farm - Mubende Block CMubende Coffee Farm CMoses OchiengUGX 180,000,0002025-09-012026-12-31

Suggested WBS nodes for each project:

WBS NodePurpose
Field LabourWeeding, pruning, mulching, manure application, harvest preparation.
Inputs And FertilizerManure, seedlings, fertilizer, farm chemicals, protective materials.
Supervision And TransportSupervisor visits, field transport, fuel, tools movement.
Harvest And IntakeHarvesting, weighing, intake, grading, and storage movement.

End-To-End Flow

Use this exact order for the project fund-control demo:

  1. Create or confirm parties.
  2. Create projects and WBS nodes.
  3. Create farms and partitions.
  4. Register funding sources.
  5. Record fund receipts.
  6. Plan field work.
  7. Record attendance or activity evidence.
  8. Create payment obligations.
  9. Create and execute payment batch.
  10. Verify GL and reports.
  11. Close the project when work and funding are fully reconciled.

Step 1: Create Or Confirm Parties

Open Parties and create or confirm the people and organizations used in the demo.

PartyParty TypeRole In Demo
Aston BrownIndividualProject funder and possible group leader payee.
Grace NakkaziIndividualProject funder and possible group leader payee.
Moses OchiengIndividualProject funder and possible group leader payee.
Amina NakatoIndividualSupervisor or worker group leader.
Peter OkelloIndividualSupervisor, supplier, or field lead.

Expected result:

  • Each party has a readable name and business reference.
  • The UI should not expose internal party IDs to the user.
  • If a party is linked as a project funder, the system can assign or infer the Project Funder role for that relationship.

Next action:

  • Use these parties as project owners, funders, group leaders, supervisors, or payment payees in later steps.

Step 2: Create The Projects

Open Projects & WBS -> Project Control.

Create one project per farm.

FieldMityana Block AMpigi Block BMubende Block C
Project NameJulita Coffee Farm - Mityana Block AJulita Coffee Farm - Mpigi Block BJulita Coffee Farm - Mubende Block C
Project TypeManaged Farm / ContractManaged Farm / ContractManaged Farm / Contract
Owner / Funder PartyAston BrownGrace NakkaziMoses Ochieng
Business UnitHead Office or Agriculture Head OfficeHead Office or Agriculture Head OfficeHead Office or Agriculture Head Office
CurrencyUGXUGXUGX
Budget Amount120000000150000000180000000
Fund RestrictionRESTRICTEDRESTRICTEDRESTRICTED
Start Date2025-09-012025-09-012025-09-01
End Date2026-12-312026-12-312026-12-31

Expected result:

  • Project code is generated by the backend.
  • The project detail view shows the project name, status, approval state, owner/funder display, budget, dates, and linked WBS controls.
  • The project becomes the top-level control point for funding, spending, GL context, and reports.

Next action:

  • Add WBS nodes and budgets for each project.

Step 3: Add WBS Nodes And Budget Lines

Open the project detail page, then use the WBS and budget controls.

Create these WBS nodes for each project:

WBS NodeMityana BudgetMpigi BudgetMubende Budget
Field Labour450000005500000065000000
Inputs And Fertilizer350000004500000055000000
Supervision And Transport200000002500000030000000
Harvest And Intake200000002500000030000000

Expected result:

  • Every project has clear spending lanes.
  • Later work orders, attendance sheets, obligations, and payments can point to the correct WBS node.

Next action:

  • Create the farm record and bind it to the project.

Step 4: Create Farms And Farm Partitions

Open Agriculture -> Setup -> Farms.

Create three farms.

FieldMityanaMpigiMubende
Farm NameMityana Coffee Farm AMpigi Coffee Farm BMubende Coffee Farm C
Farm TypeCoffee PlantationCoffee PlantationCoffee Plantation
Primary CropCoffeeCoffeeCoffee
Acreage100150200
District / RegionMityanaMpigiMubende
Linked ProjectJulita Coffee Farm - Mityana Block AJulita Coffee Farm - Mpigi Block BJulita Coffee Farm - Mubende Block C
Operational LocationLink if availableLink if availableLink if available
StatusACTIVEACTIVEACTIVE

Create sample partitions for each farm:

FarmPartitionSizePurpose
Mityana Coffee Farm ABlock A140 acresMature coffee, flowering stage.
Mityana Coffee Farm ABlock A235 acresMature coffee, weeding and manure.
Mityana Coffee Farm ANursery A325 acresSeedlings and replacement stock.
Mpigi Coffee Farm BBlock B160 acresMature coffee, flowering stage.
Mpigi Coffee Farm BBlock B255 acresPruning and manure.
Mpigi Coffee Farm BBlock B335 acresYoung coffee.
Mubende Coffee Farm CBlock C180 acresMature coffee, flowering stage.
Mubende Coffee Farm CBlock C270 acresField maintenance.
Mubende Coffee Farm CBlock C350 acresHarvest preparation.

Expected result:

  • Farms are business entities, not just physical locations.
  • Farm partitions can carry crop, block, acreage, and project context.
  • Operational locations can still be linked for geography, stock storage, or branch structure.

Next action:

  • Register each funder's project funding source.

Step 5: Register Funding Sources

Open Projects & WBS -> Operations -> Fund Control -> Funding Sources.

Click Register Funding Source.

Use one funding source per project.

FieldMityanaMpigiMubende
Document TypeProject Funding AgreementProject Funding AgreementProject Funding Agreement
Business UnitAgriculture Head OfficeAgriculture Head OfficeAgriculture Head Office
Document Date2025-09-012025-09-012025-09-01
CounterpartyAston BrownGrace NakkaziMoses Ochieng
External ReferenceFUND-ASTON-2025-001FUND-GRACE-2025-001FUND-MOSES-2025-001
CurrencyUGXUGXUGX
ProjectMityana Block A projectMpigi Block B projectMubende Block C project
WBS / Work PackageLeave blank or select top-level projectLeave blank or select top-level projectLeave blank or select top-level project
Funding SourceLeave blank on the source documentLeave blank on the source documentLeave blank on the source document
Line DescriptionApproved managed coffee farm fundingApproved managed coffee farm fundingApproved managed coffee farm funding
Line Amount120000000150000000180000000

Do not enter Document Number. It should be generated.

Expected result:

  • A funding agreement/source document exists.
  • It proves that spending is authorized up to the agreed amount.
  • It does not prove that cash has been received yet.

Next action:

  • Record actual money received using a Fund Receipt.

Step 6: Record Fund Receipts

Open Projects & WBS -> Operations -> Fund Control -> Fund Receipts.

Click Record Fund Receipt.

Use two receipts per project to show timed deposits.

FieldMityana Receipt 1Mityana Receipt 2Mpigi Receipt 1Mpigi Receipt 2Mubende Receipt 1Mubende Receipt 2
Document TypeProject Fund ReceiptProject Fund ReceiptProject Fund ReceiptProject Fund ReceiptProject Fund ReceiptProject Fund Receipt
Document Date2025-09-052026-01-152025-09-102026-02-012025-09-122026-02-10
CounterpartyAston BrownAston BrownGrace NakkaziGrace NakkaziMoses OchiengMoses Ochieng
External ReferenceBANK-ASTON-001BANK-ASTON-002BANK-GRACE-001BANK-GRACE-002BANK-MOSES-001BANK-MOSES-002
CurrencyUGXUGXUGXUGXUGXUGX
ProjectMityana Block AMityana Block AMpigi Block BMpigi Block BMubende Block CMubende Block C
Funding SourceMityana funding agreementMityana funding agreementMpigi funding agreementMpigi funding agreementMubende funding agreementMubende funding agreement
Line Amount7000000050000000900000006000000010000000080000000
NotesInitial project depositSecond managed farm depositInitial project depositSecond managed farm depositInitial project depositSecond managed farm deposit

Expected result:

  • Fund receipts create the actual received-funds side of the project position.
  • After approval and posting, GL should show money-in effects according to the tenant posting rules.
  • Project fund reports should show available project funds.

Next action:

  • Start planning and recording farm work.

Step 7: Create Field Work Orders

Open Agriculture -> Operations -> Field Operations -> Work Orders.

Create one work order per farm for coffee flowering-stage maintenance.

FieldMityanaMpigiMubende
Document TypeAgriculture Field Work OrderAgriculture Field Work OrderAgriculture Field Work Order
Document Date2026-08-102026-08-102026-08-10
ProjectMityana Block AMpigi Block BMubende Block C
FarmMityana Coffee Farm AMpigi Coffee Farm BMubende Coffee Farm C
Farm PartitionBlock A1Block B1Block C1
WBS / Work PackageField LabourField LabourField Labour
ActivityWeeding and manure applicationWeeding and pruningWeeding and flowering-stage cleanup
SupervisorAmina NakatoPeter OkelloAmina Nakato
Worker GroupCoffee Field Crew 1Coffee Field Crew 2Coffee Field Crew 3
Planned Start2026-08-122026-08-132026-08-14
Planned End2026-08-142026-08-152026-08-16
Estimated Cost161000016700001730000

Expected result:

  • Work is planned before payments are made.
  • The project, WBS, farm, and partition context is already attached before evidence capture.

Next action:

  • Record the actual attendance and activity evidence.

Step 8: Record Worker Attendance

Open Agriculture -> Operations -> Field Operations -> Worker Attendance.

Use group-leader payout for the shortest recording. Use direct-worker payout when you want to show that the system can split approved attendance into individual worker payments.

FieldMityanaMpigiMubende
Document TypeAgriculture Worker Attendance SheetAgriculture Worker Attendance SheetAgriculture Worker Attendance Sheet
Source Work OrderMityana work orderMpigi work orderMubende work order
ProjectMityana Block AMpigi Block BMubende Block C
FarmMityana Coffee Farm AMpigi Coffee Farm BMubende Coffee Farm C
WBS / Work PackageField LabourField LabourField Labour
Attendance Date2026-08-122026-08-132026-08-14
Worker GroupCoffee Field Crew 1Coffee Field Crew 2Coffee Field Crew 3
Group Leader / PayeeAston BrownGrace NakkaziMoses Ochieng
SupervisorAmina NakatoPeter OkelloAmina Nakato
Payout ModeGROUP_LEADERGROUP_LEADERGROUP_LEADER
Worker Count101010
Rate / Day161000167000173000
Total Amount161000016700001730000
EvidenceAttendance sheet, field photo, GPS if availableAttendance sheet, field photo, GPS if availableAttendance sheet, field photo, GPS if available

Expected result:

  • Approved attendance becomes evidence for a labor payment obligation.
  • Group membership role metadata should prove who was worker, group leader, or supervisor for that group at the time of approval.
  • The group-leader path pays one approved leader on behalf of the group.
  • The direct-worker path carries the worker group, group leader role, supervisor role, and worker party context into the source documents before payment batching.

Important:

  • Individual-worker split payout should create one obligation or one payment line per worker, depending on the selected policy.
  • The direct-worker live smoke currently uses JAW-DIRECT-22180210031035 and obligations JOBL-DIR-1-180210031035 through JOBL-DIR-3-180210031035.

Next action:

  • Create payment obligations from the approved attendance sheets.

Step 9: Create Payment Obligations

Open either:

  • Agriculture -> Operations -> Finance Orchestration -> Spending Requests, for agriculture source context.
  • Projects & WBS -> Operations -> Fund Control -> Payment Obligations, for project-owned fund control.

Use payment obligations to say, “this person or group must now be paid from this project fund.”

FieldMityanaMpigiMubende
Document TypeAgriculture Payment Obligation RequestAgriculture Payment Obligation RequestAgriculture Payment Obligation Request
Source DocumentMityana worker attendanceMpigi worker attendanceMubende worker attendance
ProjectMityana Block AMpigi Block BMubende Block C
WBS / Work PackageField LabourField LabourField Labour
Funding SourceMityana funding agreement or receiptMpigi funding agreement or receiptMubende funding agreement or receipt
PayeeAston BrownGrace NakkaziMoses Ochieng
Payment ModeGroup leader on behalfGroup leader on behalfGroup leader on behalf
Amount161000016700001730000
Due Date2026-08-202026-08-202026-08-20
Cost CategoryField LabourField LabourField Labour
NotesWorker group payout for approved attendanceWorker group payout for approved attendanceWorker group payout for approved attendance

Expected result:

  • The obligation is approved before payment execution.
  • The system should reject duplicate or over-amount payment lines from the same obligation.
  • The project fund position should show committed spending.

Next action:

  • Generate a payment batch from approved obligations.

Step 10: Create And Execute Payment Batch

Open Payments -> Bulk Payments.

Create a batch for approved obligations.

FieldValue
Batch NumberGenerated or use external reference if required
Batch ModeSETTLE_OBLIGATIONS
Business UnitAgriculture Head Office
Payment ChannelCash or configured internal payment channel
CurrencyUGX
Batch Date2026-08-20
NotesCoffee field worker payouts from approved project obligations

Add approved obligations as lines.

LineSource ObligationPayeeAmountExpected Payment Pattern
1Mityana obligationAston Brown1610000Group leader paid on behalf of workers.
2Mpigi obligationGrace Nakkazi1670000Group leader paid on behalf of workers.
3Mubende obligationMoses Ochieng1730000Group leader paid on behalf of workers.

Expected result after validation:

  • Lines inherit source obligation, project, WBS, funding source, and payee context.
  • Duplicate source lines should be rejected.
  • Amounts above remaining obligation balance should be rejected.

Expected result after approval and execution:

  • Batch status moves to successful execution.
  • Payment transactions are created for settled internal/cash lines.
  • GL batch is created or linked according to posting rules.
  • Project utilization reports show paid spending.

Live proof currently available:

  • JPB-20260820-02 is approved and successful.
  • Lines 44-48 created payment transactions 136-140.
  • Those payment transactions are OUTBOUND, DISBURSEMENT, SETTLED, and were created by settle_internal_batch_line.
  • This proves the group-leader/payee-style obligation-backed internal settlement path.
  • SMOKE-PB-DIRECT-22180210031035 is approved and successful.
  • Direct-worker lines 49-51 created payment transactions 143-145.
  • Those direct-worker transactions paid Amina Nalubega, Samuel Kato, and Grace Nansubuga individually.
  • The direct-worker batch inherited project PRJ-000007, WBS WBS-000015, funding receipt JFR-01-01, and source obligations JOBL-DIR-1-180210031035 through JOBL-DIR-3-180210031035.
  • This proves the individual worker payout path from approved attendance evidence to payment transactions.

Current gap:

  • JPB-20260820-01 is GL-posted and successful, but its line-level payment_transaction_id values are blank. Do not use it as proof of payment-transaction creation.
  • Mixed payout still needs a separate scenario-specific smoke if the recording must show some workers paid directly and others through a group leader in the same batch.

Step 11: Verify GL

Open Accounting / GL and find the payment batch GL reference.

For the current live proof, use:

ItemValue
Group-Leader Payment BatchJPB-20260820-02
Group-Leader Payment Batch ID44
Group-Leader GL BatchBATCH-202608000276
Group-Leader GL Batch ID2706
Group-Leader Payment Transactions136, 137, 138, 139, 140
Direct-Worker Payment BatchSMOKE-PB-DIRECT-22180210031035
Direct-Worker Payment Batch ID45
Direct-Worker GL BatchBATCH-202608000296
Direct-Worker GL Batch ID2736
Direct-Worker Payment Transactions143, 144, 145

Expected result:

  • Payment execution has accounting impact.
  • The GL batch references the payment batch.
  • The project/funding reports reconcile with the posted payment data.

Next action:

  • Run project fund reports.

Step 12: Run Reports

Open Reporting -> Run Reports.

Use the Projects & WBS report group.

ReportWhat To Show
Project Fund PositionFunding source, fund receipt, available balance, committed obligations, paid utilization.
Project Fund UtilizationWork, obligation, payment batch, GL status, and amount used by project/WBS.
Project Cross-Funding ExposureOpen due-from/due-to exposures and settlements between projects or funds.

Filter examples:

FilterExample
From Date2025-09-01
To Date2026-08-31
CurrencyUGX
ProjectSelect one of the three demo projects
Funding DocumentSelect the funding agreement or receipt if needed
StatusOPEN, SETTLED, POSTED, or APPROVED where the report supports it

Expected result:

  • Reports show user-facing document numbers and party names, not internal IDs.
  • Drilldowns should open dialogs or in-report views, not route away unexpectedly.
  • Fund position and utilization should match the payment and GL story.

Step 13: Optional Cross-Project Funding Demo

Use this only if the recording needs cross-funding.

Scenario:

  • Mityana Block A temporarily funds a labor obligation for Mpigi Block B.
  • Mpigi later receives money and settles the exposure back to Mityana.

Open Projects & WBS -> Operations -> Fund Control -> Cross-Funding Requests.

FieldValue
Source ProjectJulita Coffee Farm - Mityana Block A
Source Funding DocumentMityana funding receipt
Target ProjectJulita Coffee Farm - Mpigi Block B
Target WBSField Labour
Amount5000000
ReasonTemporary support for field labor before second deposit clears.
Expected Settlement Date2026-09-15

Expected result:

  • Cross-funding creates an exposure, not free spending.
  • GL should carry due-from and due-to accounts if posting rules are configured.
  • The exposure remains open until a cross-funding settlement is approved and posted.

Next action:

  • Use Cross-Funding Settlements to clear the exposure after the target project receives money.

Step 14: Finish Or Close The Project

Before closing a project, verify:

CheckExpected State
Funding agreementsApproved and reconciled.
Fund receiptsApproved and posted where applicable.
Work ordersCompleted or cancelled.
Field activity reportsApproved and linked to evidence.
Worker attendanceApproved and either paid or explicitly not payable.
ObligationsPaid, cancelled, or carried forward with approval.
Payment batchesSuccessful, failed with resolution, or cancelled.
Cross-funding exposureSettled or formally outstanding.
GLPosted batches reconcile to payment and receipt records.
ReportsFund position, utilization, and exposure explain remaining balances.

Expected result:

  • The project can be closed without hiding unpaid workers, missing fund receipts, or unresolved cross-funding.

Recording Order

Use this screen order for a clean user recording:

  1. Dashboard agriculture card.
  2. Agriculture -> Setup -> Farms: show the three farms and partitions.
  3. Projects & WBS -> Project Control: show the three projects and one project detail.
  4. Projects & WBS -> Fund Control -> Funding Sources: create or show funding agreement.
  5. Projects & WBS -> Fund Control -> Fund Receipts: create or show actual received money.
  6. Agriculture -> Operations -> Field Operations: show work order and attendance.
  7. Projects & WBS -> Fund Control -> Payment Obligations: show approved obligation.
  8. Payments -> Bulk Payments: show JPB-20260820-02.
  9. GL: show BATCH-202608000276.
  10. Reporting -> Projects & WBS: run fund position and utilization.
  11. Optional: show cross-funding exposure and settlement.

Payment Pattern Notes

Use these talking points when explaining worker payouts:

PatternMeaningCurrent Proof Level
Group leader paid on behalfOne payment line goes to the group leader, backed by an attendance sheet listing workers.Proven in the current live obligation/payment/GL path.
Individual worker payoutOne line per worker or one obligation split into worker-level lines.Proven through SMOKE-PB-DIRECT-22180210031035, payment transactions 143-145, and GL batch BATCH-202608000296.
Mixed payoutSome workers paid directly, some through a leader, and suppliers paid separately.Supported by shared payment batch design; needs scenario-specific smoke.
Supplier/service payoutActivity report or service document creates an obligation to a supplier.Supported by obligation-backed payment path.

The important discipline is that the payment batch should not be the first record. Work, attendance, or service evidence should be approved first. Then the obligation is created. Then payment execution happens from the approved obligation.

Common Mistakes To Avoid

MistakeCorrect Approach
Typing document numbers manually.Let the backend generate them from the document type.
Treating a funding agreement as cash received.Record a separate fund receipt when money actually arrives.
Paying workers directly from a work order.Approve attendance or activity evidence, create an obligation, then pay from the obligation.
Using Agriculture as a second project/payment/reporting module.Use Agriculture for source workflows and context; use Projects, Payments, Reporting, and GL as owning primitives.
Showing internal IDs to users.Use party names, project codes, farm codes, document numbers, payment batch numbers, and GL batch numbers.
Recording a farm only as a location.Create a farm entity and optionally link it to operational location and project.

Pinkapple ERP by Stat Solutions Network