Stores in the demo organisation: two lots awaiting inspection, two expired, the rest on the shelf.
Stores
From the FlyPack CAMO manual
Receipt, incoming inspection, segregation and issue — 145.A.42 and 145.A.25(d).
The menu item is missing for organisations that keep no store. A pure CAMO manages airworthiness and the parts live in whichever maintenance organisation does the work. It is switched on per organisation by whoever runs the installation, not by an administrator — hiding a store that already has stock in it is not a decision to be made by mistake.
The one rule everything follows from
Everything received lands in quarantine and stays there until somebody inspects it. Nothing quarantined can be fitted. That single rule is most of 145.A.42, and it is why Receive stock does not ask where to put something: it goes to quarantine, and the inspection decides where it goes next.
Nothing on the screen decides whether a lot has expired. The API works it out from the dates on every read, so there is no stored flag to go stale — a shelf that looked in date because a nightly job failed is the exact failure a store exists to prevent.
The four tiles
| Tile | What it counts | Why it is first |
|---|---|---|
| Awaiting inspection | Lots in quarantine | Nothing here can be fitted, so it is what stops work |
| Expired | Past their shelf life | Must not be fitted; stops work just as firmly, and quietly |
| Expiring within 90 days | Order before it runs out | |
| Serviceable | On the shelf and fittable, with reserved and unserviceable beside it |
The four buttons at the top
Receive stock
Records a delivery, field by field:
| Field | What goes in it |
|---|---|
| What it is | Component · Material · Consumable · Tool. It changes which paperwork the incoming inspection will insist on |
| Part number | |
| ATA chapter | 79 |
| Description | AeroShell Oil Diesel Ultra |
| Batch / lot | The manufacturer's batch. What a recall is answered with |
| Serial number | Only where the item has one — "a serialised item is received as one" |
| Quantity and Unit | EA, SET, or a measure — L, ML, GAL, QT, KG, G, M. See Quantity, and the unit it is counted in below |
| Manufacturer | |
| Supplier | Who you bought it from, which is often not the manufacturer |
| Order reference | Your purchase order |
| Manufactured / cured | "The clock an elastomer runs on" — a seal ages from cure, not from delivery |
| Received | The day it arrived |
| Shelf life expires | "Leave empty where there is none" |
| Taken from | Where the expiry came from — the certificate of conformity, the manufacturer's data, or worked out from the cure date |
| Currency, Unit cost, Sale price | "What it cost to buy", and what it is sold at |
| Release document | The kind it arrived on. Only the kinds acceptable for this class of item are offered |
| Its reference | The form number |
| Issued by | The organisation that released it |
| The paperwork it came with | The same document as a file, PDF or a photo. See The paperwork below |
It refuses, in these words:
- "A receipt has to be for more than nothing."
- "Nothing can be received in the future."
- "A part cannot have been made after it arrived."
- "The shelf life expires before the part was made — check the dates."
- "A serial number identifies one item. Receive it as a quantity of 1."
- "An exchange rate has to be greater than zero."
The paperwork
The last thing on the receive form is a Choose a file button under The paperwork it came with. It takes one file: the Form 1, the certificate of conformity or of analysis, the delivery note — whichever document this lot is being received against. The same control is on Correct the details, for a lot that was received without its paperwork or with the wrong file — see The paperwork, after the fact below.
What it accepts. A PDF, or a photo — PNG, JPEG, WebP or TIFF — up to 25 MB. A photo of a Form 1 taken on a phone at the goods-in bench is a perfectly good record; the point is that the document is filed with the lot rather than left in the envelope. Anything else is refused by name: "… is not a file type this application stores."
It uploads as soon as it is chosen, before Receive it is pressed. While that happens the box reads "Uploading delivery-scan.pdf…" and the form refuses to submit until it is done: "delivery-scan.pdf is still uploading — a moment." It is uploaded early so the form can come back with what it got and let you decide what to keep of it.
What the form shows once the file is up
- Its name and page count — "delivery-scan.pdf · 5 pages". A photo is one page. A PDF that cannot be opened for pages reads "could not be read for pages"; it is still filed, whole, and simply offers no page picker.
- A preview, in the browser's own PDF viewer, on the right. It numbers its pages, and those numbers are what the tick-boxes refer to.
- One tick-box per page, numbered, all ticked to begin with, with All and None under them. Shown only for a file of more than one page.
- Choose another, beside the name, which throws this upload away and offers the file box again.
Choosing the pages
Untick the pages that are not this lot's paperwork. A supplier's scan is usually the whole delivery — the invoice, the packing list, then three certificates for three different lots. The two pages that are this lot's certificate are what an auditor asks for, and filing all twelve means the right two are found by reading the wrong ten.
The pages left unticked are cut off before the file is filed. What is stored is only the pages kept, in their original order, under the name the file was uploaded with — so a twelve-page delivery-scan.pdf with pages 3 and 4 ticked is filed as a two-page delivery-scan.pdf. The cutting is done on the server, when Receive it is pressed, and before the lot is created: a receipt whose paperwork could not be cut down does not leave a lot behind pointing at the wrong file.
Two rules about the ticks:
- Keeping every page keeps the file exactly as uploaded. Nothing is rewritten.
- Keeping none is refused: "Keep at least one page of the paperwork, or choose another file." A lot with a file that has nothing in it is a lot with no paperwork that looks as though it has some.
If you change your mind
- Choose another deletes the upload and offers the button again.
- Cancel, the close button or Escape delete it too. A file uploaded for a receipt that never happened is not kept.
- Once Receive it has gone through, the file is that lot's record. It is not deleted from anywhere — the deletion that happens on cancel is refused by name for a file a lot points at: "That paperwork is filed against a record and is not deleted from here."
Where it goes
The file is stored the way every document is — under its own id, with its size and a hash of its bytes, checked on every read — see Documents and records. On the lot afterwards it is under Its paperwork, the card that also lists what Receive from paperwork filed, and it opens in the viewer from there and from the Open the paperwork button on the incoming inspection.
What it does not do
It does not read the document. What the release document is, its number and who issued it are the three typed fields above the file box, and they are shown again at the incoming inspection for the inspector to confirm or correct. The one place a document is read by software is Receive from paperwork, below, which reads a whole delivery and proposes the lots on it. The lot lands in quarantine. The markup on the organisation's settings is applied once, here, to seed the sale price — never on the way out, so a price somebody was quoted does not move because a percentage was edited afterwards.
Receive from paperwork
Opens /stores/import, which reads a delivery note or invoice and proposes the lots on it, so a delivery of thirty lines is checked rather than typed. Each proposed lot is corrected or removed before it is accepted. Everything it creates still lands in quarantine.
Part off an aircraft
For a part removed to get at something else and going back on when the job is done.
| Field | What goes in it |
|---|---|
| Off which aircraft | The registration it came off. This is what tags it |
| Under which work pack | Optional, and worth filling in — it links the removal to the visit |
| Part number · Serial number · Description | Main battery, Concorde RG-35AXC |
| Quantity | |
| Removed by and On | Who took it off, and when |
| Why it came off | Removed for access to the firewall |
It is tagged to the aircraft it came off, and it can only be refitted to that aircraft — issuing it to a pack for a different registration is refused by name:
"This part came off YR-XYZ and is tagged to go back on it. It cannot be fitted to YR-ZEN."
To break that tag, open the lot and use Release the reservation, which requires a reason: "Say why it is no longer going back on its own aircraft."
Start a stock check / Carry on counting
Opens a counting session. Lines are counted one at a time; the check is signed off at the end, and a count that differs from the recorded figure has to be explained. A stock figure that moves without a reason is the one thing a stock check cannot reconcile, which is why the correction dialog asks for one. A check can be abandoned, with a reason.
The shelf
The table lists everything not depleted, installed or returned. Above it:
- A search box — part number, batch, serial or bin. It filters the table in the browser rather than reloading the screen, so typing does not lose your place.
- Tabs: Everything · Awaiting inspection · Serviceable · Reserved for refit · Expiring · Unserviceable.
- Print labels — tick lots with the checkbox in the first column, then print. Produces an identity label and a condition tag, on an A4 sheet or a 62 × 100 mm roll. The organisation's own form reference prints small in the corner; it is set on Organisation info and prints nothing if blank.
Each row carries the condition, the shelf life as a coloured pill, the bin, and warnings in amber underneath: a missing release document, or "off YR-XYZ — refit to that aircraft only".
Per-row buttons
- Inspect — only on a quarantined lot. See below.
- Open — the lot's full record: its paperwork, its history, and every aircraft it reached.
- Edit — correct what was typed at receipt.
A quarantined row carries all three. On a narrow window they wrap onto a second line inside the cell rather than pushing the table wider, and a table that is still wider than its card scrolls sideways. It used to do neither: the row was cut off at the card's edge with the third button — Edit — simply not there and nothing to say the row went on.
Quantity, and the unit it is counted in
Unit offers nine, and they are two different kinds of thing:
| Codes | What the number means | |
|---|---|---|
| Packages | EA · SET | How many containers or sets are on the shelf |
| Measures | L · ML · GAL · QT · KG · G · M | A physical amount |
GAL and QT are US gallons and US quarts, not imperial. Aviation oil is packaged and consumed in US quarts everywhere — Aeroshell, Phillips XC — and hydraulic fluid, solvent and cleaner come in five-gallon pails. The imperial pair is deliberately not offered: it is obsolete in aviation and an imperial quart is a fifth larger than a US one, which is the kind of quiet difference that ends up in an engine.
Quantity is held to three decimal places, so a part-used container is exact: 0.946 L, 2.5 QT, 0.125 GAL.
Record a liquid in what it was bought in
A case of twelve one-quart bottles of oil is 12 QT, not 1 EA and not 12 EA. Recorded as a package the store can tell you how many bottles are on the shelf and nothing at all about how much oil, which is the question actually asked when a job needs six quarts. Use EA for a liquid only where the invoice really does count containers and gives no volume.
The same rule reaches Receive from paperwork above: the reader is told to take the measure the invoice bills in, so a line reading "12 QT AeroShell W100" comes in as twelve quarts rather than as twelve of something unnamed.
Nothing converts between units
A quantity is arithmetic in whatever unit its own lot carries. Issuing and returning copy the lot's unit, and the only totals taken are of one lot's own movements — so a unit is a label on a number and never a factor. The list is kept short for that reason: two codes for the same physical thing would be two labels somebody could mix with nothing to catch it.
If you hold the same oil in litres on one lot and quarts on another, the shelf will say so lot by lot and will not add them up for you.
Incoming inspection
The gate between quarantine and the shelf. Inspect on a quarantined row, or Incoming inspection at the bottom of the lot's own record. Passing it is what makes a lot fittable.
The paperwork, and the banner
The inspection does not ask what the release document is — that is typed at receipt, or corrected on the lot's own Edit. Where a file was uploaded with the lot, Open the paperwork it came with sits under the banner and shows it in the viewer, so the document can be read on the screen the inspection is recorded from.
Where the release document is missing or unacceptable, an amber banner says so in the words the shelf uses — "No conformity document — 145.A.42(a)(v) asks for a statement of conformity to specification." — and adds: "An inspection cannot pass without it. Record the document against the lot first — Edit on its row — or fail the inspection and send it back."
What it asks
| Field | What goes in it |
|---|---|
| Outcome | Passes — it is what it should be · Fails — it is not |
| Inspected by | Whoever did it. Required: "Who inspected it?" |
| On | The date. Not in the future, not before the part arrived |
| Onto which shelf | On a pass — a serviceable bin. There must be one: "There is no serviceable location to put it in. Add one on the Stores screen first." |
| Note | On a pass, optional |
| What happens to it | On a failure — Into the unserviceable store or Back to the supplier |
| Return reference | On a failure — the RMA number |
| What was wrong with it | On a failure, required: "Say what was wrong with it — a rejection with no reason cannot be acted on." |
What a pass needs
A pass needs an acceptable release document, with its reference, already on the lot. The check is the one the amber banner on the shelf counts: "No release document — a component needs an EASA Form 1 or an 8130-3." · "No conformity document — 145.A.42(a)(v) asks for a statement of conformity to specification." · "… is not acceptable for this class of item." · "The release document has no reference on it, so the paperwork cannot be found again." · "Neither the manufacturing nor the supplier source is recorded — 145.A.42(a)(v) asks for both." Any of them stops a pass: "… An incoming inspection cannot pass without it."
That last one is the reason Manufacturer and Supplier matter on the receive form for material: the rule asks for both sources, and a certificate alone does not name them.
What a pass and a failure do
- Passed — the lot becomes serviceable and moves to the bin chosen. The green tag on it is what a work pack looks for.
- Failed — it goes to the unserviceable store or back to the supplier, with the reason on its record. Neither is a deletion; a rejected lot is part of the history of what came through the door.
It refuses an inspection dated in the future, one dated before the part arrived, and one on a lot that is not in quarantine: "Incoming inspection applies to a lot in quarantine. This one is serviceable."
What you can do to a lot once it is open
| Button | What it does | What it refuses |
|---|---|---|
| Incoming inspection | The gate above | |
| Record as opened | Starts a shorter opened-life clock on sealants and the like | "Only a serviceable lot can be opened." · "This lot is already open." · not in the future |
| Move it | To another bin | A bin whose kind does not match the lot's condition. Moving an unserviceable part onto a serviceable shelf is refused, not recorded |
| Condemn | Marks it unserviceable | "Say why it is unserviceable." |
| Scrap it | Mutilation under 145.A.42(d) | "Only an unserviceable lot can be scrapped. Condemn it first, so the reason it failed is on file." — and it wants to know how it was mutilated, because a note saying "scrapped" does not show the part was made unusable |
| Back to the supplier | Records the return | "Only a quarantined or unserviceable lot goes back to the supplier." |
| Release the reservation | Breaks the tag to an aircraft | Needs a reason |
| Prices | Cost and sale price | |
| Correct the details | Fixes what was typed, and files or replaces the paperwork | A quantity change needs a reason |
What each of those asks for
| Dialog | Fields |
|---|---|
| Incoming inspection | Outcome (passed / rejected) · Inspected by · On · Onto which shelf where it passed · Note |
| Record as opened | Opened on · Good for, once open — days, from the manufacturer |
| Move it | To — the bin · Recorded by · Note |
| Condemn | Why it is unserviceable — Beyond shelf life; hardened · Recorded by |
| Scrap it | How it was mutilated — Housing drilled through in four places and flange cut · By · Witnessed by · On |
| Back to the supplier | What happens to it · Return reference — the RMA number · What was wrong with it — Seal perished; cure date four years before delivery · Recorded by · Note |
| Release the reservation | Why it is not going back on — Aircraft sold; part retained as spare |
| Prices | Unit cost · Sale price |
| Correct the details | Everything typed at receipt except the received date, plus The paperwork it came with — see below |
The paperwork, after the fact
Correct the details carries the same The paperwork it came with control as the receive form, for two cases:
- A lot received without its paperwork. The section shows Choose a file. Pick the file, tick the pages to keep, and save — the same upload, preview and page picker as at receipt, and the same rule that cancelling the form throws the upload away. The lot's amber no release document warning is answered by the typed fields above it, not by the file; both are wanted.
- A lot with the wrong file. The section shows the file's name — it opens in the viewer — with on file beside it and a Replace button. Replace reveals the file button; the new file is filed against the lot on save.
Replacing keeps the old file. It was this lot's paperwork until that moment, the audit row for the correction names both the old and the new file by id, and a record named on the trail has to stay findable. So the previous file stays in storage; it is simply no longer the one the lot points at. This is the one place a stored file is not deleted on being superseded — compare Choose another before saving, which deletes an upload nothing points at yet.
Filing or replacing paperwork is a correction like any other on this form: no reason is asked, and it goes on the audit trail with the rest of what changed.
Scrap it asks how, not whether. 145.A.42(d) is about mutilation — a note saying "scrapped" does not show the part was made unusable, and an unusable-looking part that was only put in a bin is the one that comes back.
Issuing to a work pack
From the work pack, not from here: Issue from the store on the pack's parts card. The refusals are the point of the whole screen:
- "WP-2026-0215 is completed — nothing more can be issued to it."
- The part is tagged to a different aircraft (above).
- "Quarantine stock cannot be fitted. Only serviceable material goes onto an aircraft."
- "This lot expired on 3 March 2026. Expired material cannot be fitted — condemn it instead."
- A missing release document: "… It cannot be issued until that is on file."
- "Only 2 ea of this lot is on the shelf."
Return on the same card puts an unused part back.
Locations
Folded away at the bottom of the screen. Add a location takes a code (A1), a name, a kind — serviceable, quarantine, unserviceable or scrap — and the storage conditions from the manufacturer's instructions where they state any.
Add at least a serviceable and a quarantine bin before receiving anything: incoming inspection needs somewhere to put what it passes.
Archive retires a bin. Serviceable material is kept apart from unserviceable — 145.A.25(d) — and the application enforces it rather than trusting it.
Parts already fitted to an aircraft
This screen is the shelf. A part that has been fitted has left it, and its remaining life is reported with the rest of the fleet's due work — on the aircraft's Components tab, on its overview, and on the dashboard due list. See Components and their lives.
So the two questions have two homes, and neither screen answers both:
- What is expiring on the shelf — here, on the Expiring tab.
- What is running out on an aeroplane — the dashboard due list, across the whole fleet.
Labels and the QR code
Every label carries the organisation's name and a QR code that resolves to that lot's record. Scanning a tin on the shelf opens it on whatever phone the person already has, signed in as they already are.