Skip to content

Farm & Livestock

Withdrawal periods computed from the treatment, so a held animal cannot ship.

The short answer

Farm & Livestock is an Odoo application for mixed farms running crops and animals together. It keeps an animal register with weighings and health events, fields with their crop cycles, and it computes a Do-Not-Ship hold from the withdrawal period on every treatment. Meant for anyone whose meat or milk cannot legally leave until a medicine has cleared.

Request this module

Last updated

What it is for

An animal is treated. The medicine has a withdrawal period, and until it elapses that animal's meat or milk cannot legally be sold. Miss it and you have a residue violation, which means a recall, a fine and a conversation with the processor. The date lives in three places at once: the vet's note, somebody's memory, and a wall calendar. None of them is the herd record, so nothing at the loading ramp stops the animal going on the truck.

Platform
Odoo
Category
Assets & rentals
Works with
Odoo 18 · Odoo 19
Technical name
farm_livestock
Status
Direct from webbox
Pricing
Paid

What is inside it

  1. 01

    Withdrawal

    A health event carries the product, the dose and a withdrawal in days. Safe After is computed from the treatment date, and nobody sets or clears the hold that follows from it.

  2. 02

    The herd

    Each animal keeps its own weighings, so average daily gain is measured across them rather than estimated between a first weight and a last one.

  3. 03

    Health events

    Treatments, vaccinations and observations land on one model, so an animal's history reads as a single dated list, which is what an inspector asks to see.

  4. 04

    The board

    Six tiles lead with Do-Not-Ship, the only one carrying a legal consequence. Each tile opens the animals it counted.

What it looks like in practice

  1. Two treatments a fortnight apart, and the hold has to follow the later one

    An animal is treated twice in quick succession, each product with its own withdrawal period.

    The animal takes the latest Safe After date across every treatment it has had, and Do Not Ship stays true while that date is in the future. Taking the maximum is the only reading that is safe. The hold lifts by itself the morning the last withdrawal elapses.

    Behaviour of the shipped code.

    WithdrawalHealth events

  2. Two animals in the herd cannot go on the truck this week

    The board opens on a herd that has had treatments recorded against it, and somebody is picking animals to load.

    The Do-Not-Ship tile counts animals whose latest Safe After date has not passed, and clicking it opens exactly those animals. The held rows also appear in the livestock list itself rather than only inside a report nobody runs.

    Do-Not-Ship
    2
    Active animals
    8
    Health events recorded
    7

    Figures from the module's own demo data, on a fresh install. Install with demo data and open Farm, then the dashboard.

    The boardThe herd

  3. A ration change gets judged on weighings instead of a hunch

    Someone changes what the herd is fed and wants to know within a few weeks whether it worked.

    Average daily gain is computed across the weighings held on each animal, so the figure only moves when a weighing is entered. The board carries it beside the recorded yield for the period.

    Avg daily gain
    0.5 kg
    Total yield
    43.4

    Figures from the module's own demo data, on a fresh install. Install with demo data, open Farm then Livestock and read the weighings on an animal.

    The herdThe board

What it deliberately does not do

No breeding or genetics
Animals carry a tag, a breed and a history. Parentage, insemination and expected calving dates are not modelled.
No feed formulation
Daily gain is measured. Deciding what to feed to change it is a different discipline and a different product.
No RFID or scale integration
Weighings and events are typed or imported. Nothing here talks to a crush, a reader or a milk meter.
No regulatory filing
The withdrawal record is kept and enforced inside the herd. Submitting movement or medicine returns to a national scheme is out of scope.

Questions

Can I install this on Odoo Online?
No. Odoo Online cannot install modules that contain Python, so this runs on Odoo.sh or a self-hosted instance. Check the versions listed above for the series and edition it is verified against.
Does it file our medicine and movement returns for us?
No. The withdrawal record is kept and enforced inside the herd: the hold appears on the animal, drives the board, and lifts on its own. No return, form or submission goes to any national scheme, and nothing in the module should be read as legal advice for your jurisdiction.
Can it read weights off a scale or tags off a reader?
No. Weighings and health events are typed in or imported, so nothing talks to a crush, a reader or a milk meter. Average daily gain is only as good as the weighings behind it, which is why it is computed from records rather than estimated between two points.
What has to be set up before the Do-Not-Ship hold works?
Withdrawal days on the medicines you use. A health event recorded with no withdrawal creates no hold at all, and that failure is silent. Dates matter as much: a treatment entered a week late computes a hold that expires a week early, because the event date is what the arithmetic trusts.

Have something to build?

Tell us the problem. We'll come back with a plan, a price, and who'd actually build it.

  • Free scoping call
  • Reply within 1 business day
  • No lock-in