Sub-Rentals
Sub-Rentals
Create, track, and invoice sub-rental transactions (with E-Rechnung ZUGFeRD compliance)
Overview
The Sub-Rental feature manages sub-rental transactions — when you rent out your own equipment to other productions. Track gear availability, generate invoices, capture signatures, and maintain a history of all sub-rental activity.
Organising items — categories, notes & the Gear List export
Added in v0.331.0.
The item list inside a sub-rental works like the project gear list:
- Adding equipment (fast). Updated in v0.342.0. Type in the Add equipment search box — at the top of the Items section and inside every category — then tap a result (or press Enter) to add it. The box clears and keeps focus, so you can add several pieces in a row without opening a dialog or scrolling. Adding gear that's already in that category bumps its quantity; if nothing matches, choose Add "…" as a custom item. Use Browse gear to open the multi-select picker and check off a big batch at once.
- Categories. Use Add category to create named sections (e.g. Camera, Lighting, Grip). Drag the handle to reorder categories, and drag items to reorder them within a section. To move an item to another category, open its ⋯ menu and pick Move to…. Items you haven't categorised sit in an Uncategorised section at the bottom.
- Removing a category keeps its items — they simply move to Uncategorised. Nothing is deleted.
- Category notes. Click the speech-bubble on a category header to add a note (e.g. a rental-house reference or handling instruction).
- Item notes. Updated in v0.342.0. Each line's note is tucked away until you need it — open the item's ⋯ menu and choose Add note to reveal the field (lines that already have a note show it automatically).
- Adjusting a line. Use the −/+ stepper to change quantity; the ⋯ menu holds the note toggle, Move to…, and Remove.
- Adding a whole gear set. Added in v0.543.0. Sets you saved in Owned Gear can be added as a unit. Type the set's name, a tag, or any member's name into the Add equipment box — sets rank above individual gear, badged Gear set with the member count and the day rate — or open Browse gear, where every set sits in its own Gear sets band above the single items (sets and items can be ticked in the same submit). The add box inside a category offers sets too, and the whole set lands in that category. See below for how it expands.
Updated in v0.342.0 — mobile: when you open an existing sub-rental, the Renter, Rental Period and Pricing sections start collapsed (each showing a one-line summary) so the item list is right there; tap a section to expand it. Save / Cancel stay pinned to the bottom of the form.
These categories and notes flow into every document: the new Gear List tile plus the Quote, Invoice, Delivery Note and Return Note all group items under category headings and print the notes. The Gear List tile (available at any stage) produces a clean, category-grouped pull/packing list — item name, quantity and note only, no prices or serials. The ATA Carnet is unchanged.
Existing sub-rentals created before this update keep working unchanged: with no categories, the list and all documents render as a plain flat list.
Full specification: docs/features/subrental-gear-list-categories/.
Renting out rental-house stock (v0.722.0)
A sub-rental normally draws its lines from your own gear. If you also operate a custom rental house with its own inventory (Rental Houses → the house → Gear), an Add from switch appears above the item search, and that house's stock can go out on a sub-rental through exactly the same flow — same delivery note, same return note, same invoice.
| Control | What it does |
|---|---|
| Add from → My gear | The default, and what every sub-rental did before this version. |
| Add from → «House» | One pill per custom rental house that holds at least one item. A house with an empty inventory is not offered. |
The switch scopes the pickers, not the sub-rental. The inline quick-add, "Browse gear", and each category section's own quick-add all search the active source — and so do the gear sets offered beside them: pick a house and you search that house's sets, built from that house's items. Lines you have already added never change when you switch; the switch only decides where the next item comes from.
The same model from two sources stays two lines. A camera you own and the same camera held by your rental house keep separate quantities and separate day rates. They are different physical units, so folding them into one row would hand over the wrong body and bill the wrong rate.
Everything else behaves as it does for your own gear. A house-sourced line resolves its serial numbers, its components and its condition sheets normally, so the delivery and return checklists offer that item's serials and list what ships with it. On screen the line and both checklists carry a chip naming the house, beside the gear-set chip.
On the documents. The delivery note, the return note and the Gear List PDF append the supplying house to the item name — and only when at least one line has one, so a sub-rental drawn entirely from your own gear prints exactly as it did before. If a house is later deleted, its lines simply print no source rather than showing an internal id.
Only rental houses you created are offered. The built-in directory houses hold no inventory of their own, and a house you have merged into another one is not offered separately.
Gear sets in a sub-rental
Added in v0.543.0.
A set is added as real, gear-linked lines — one per member, not as a single bundled row. Scanning, delivery and return notes, insurance checks and the availability warnings therefore all behave exactly as if you had picked each item by hand.
- Pricing follows the set's own pricing mode. Sum of items keeps each item's day rate. Percentage discount puts that discount on every expanded line. Fixed price spreads the package day rate across the lines in proportion to their rates, so they add up to the package price exactly.
- Members that can't be rented alone are skipped. An item whose every unit is linked as a component of another item travels with its parent — it would otherwise be billed twice. The confirmation message tells you how many were skipped, and why.
- Members missing from your inventory are skipped too (deleted, or never synced to this device).
- The lines stay tagged as a set. Each row shows a set chip, and the Delivery Note, Return Note and Sub-Rental PDF print a Set: <name> header above the run.
- It's a snapshot. Editing the set in Owned Gear afterwards does not change a sub-rental that already has it — remove the lines and add the set again to pick up the changes.
- Adding the same set twice appends a second run of lines rather than raising quantities, so a second identical package stays visible as its own block.
Leaving items of a set out
A set rarely goes out whole. You can pick what goes in at either end:
- When adding it — the set row in the Add equipment box carries a Choose items button. It opens the member list with everything ticked; untick what this job does not need.
- Any time afterwards, including while checking the delivery — open any set line's ⋯ menu and pick Set items…. The list opens with the members currently on the sub-rental ticked. Unticking removes those lines; re-ticking brings them back at the set's price. Lines you leave alone are never rebuilt, so their per-unit delivery, scan and condition state survives untouched.
- A partial set is priced on what actually goes out. With a fixed-price set, the package's rate carries over rather than its total: leave a €100 item out of a €450-for-€600 package and you pay 0.75 × €500 = €375, not €450 for less kit. A percentage-discount set keeps its discount on whatever is included.
- Items that cannot be rented on their own are listed but not tickable, with the reason on the row — a component that travels with its parent, or an item that is no longer in your inventory on this device. Nothing is silently dropped.
Full specification: docs/features/subrental-gear-sets/.
Requirements
Functional Requirements
| ID | Requirement | Acceptance Criteria | Priority | Source |
|---|---|---|---|---|
| REQ-SUB-001 | The system shall allow creating sub-rental transactions with renter info, gear items, date range, and pricing | Click "New Sub-Rental" → form opens; fill renter + items + dates + price; save → transaction created; validation on empty fields | Must | useSubRentalFormState |
| REQ-SUB-002 | The system shall support linking sub-rentals to contacts from the Contacts directory | Click renter field → contact picker opens; select contact → name, email auto-filled; unlinked → manual entry allowed | Must | useSubRentalFormState |
| REQ-SUB-003 | The system shall calculate total rental cost based on per-item daily rates × rental days | Set daily rate $50 × 3 days × 2 items → total shows $300; change dates → total recalculates; zero rate → total $0 | Must | useSubRentalFormState |
| REQ-SUB-004 | The system shall support capturing renter signatures via draw-on-canvas or image upload | Click signature area → SignatureInput opens; draw or upload → preview shown; save → signature attached to transaction | Must | useSubRentalFormState |
| REQ-SUB-005 | The system shall generate PDF invoices for sub-rental transactions | Click "Export PDF" → invoice downloads; contains renter info, items, dates, pricing, signature; filename includes date | Must | useSubRentalFormState |
| REQ-SUB-005a | The system shall generate ZUGFeRD (Factur-X) compliant hybrid PDF invoices for German E-Rechnung | PDF Invoice includes embedded XML data; form captures VAT ID and Leitweg-ID | Must | facturXGenerator.js, pdfA3Embedder.js |
| REQ-SUB-006 | The system shall track sub-rental status: Draft → Active → Returned → Archived | Create → Draft; activate → Active with dates; mark returned → Returned; archive → hidden from main list; status badge visible | Must | useSubRentalFormState |
| REQ-SUB-007 | The system shall integrate sub-rental transactions into the global calendar and availability systems | Select item with project on same dates → warning banner "Item booked for [Project]"; correctly blocks global availability | Must | calendarService |
| REQ-SUB-008 | The system shall track sub-rental income in the Analytics ROI dashboard | Complete sub-rental with $500 → Analytics shows +$500 sub-rental income; total ROI updated; breakdown per item | Should | useOwnGearROI |
| REQ-SUB-009 | The system shall automatically append condition check-in sheets to delivery AND return note PDFs | Export either note with auditable gear → Scratch sheets appended for those specific items | Must | noteConditionSheets.js |
| REQ-SUB-010 | The system shall support a physical barcode scanner for check-in and check-out | Use barcode scanner in SubrentalScannerView → cross-references with ownedGear → checks in/out matching items | Must | useBarcodeScanner.js |
Non-Functional Requirements
| ID | Requirement | Metric | Priority |
|---|---|---|---|
| NFR-SUB-001 | Subrental list shall render within 200ms for ≤100 items | Render time | Should |
Data Requirements
- Required fields: Renter name, at least one gear item, start date, end date
- Optional fields: Renter contact link, individual item rates, notes, signature image
- Persistence: IndexedDB → cloud sync
- Relationships: Links to owned gear items and contacts
Constraints & Limits
- Available to Pro tier only
- Signature capture requires touch or mouse input (no keyboard-only fallback)
- PDF invoice generation uses the same PDF engine as project exports
Offline Behavior
- Sub-rental creation and editing fully available offline
- PDF invoice generation works offline (client-side)
- Changes sync to cloud when connectivity is restored
Dependencies
- Requires: Owned Gear — subrental items from owned inventory
- Requires: Contacts — subrental clients linked to contacts
Creating a Sub-Rental
- Navigate to Sub-rentals in the sidebar
- Click New Sub-Rental
- Work through the five steps — Details → Period → Items → Pricing → Review. Any step in the bar is one tap away, Save works from every step, and a save that is missing something jumps to the step that can fix it. Changed in v0.544.0: Pricing now comes after Items, because the subtotal, the tax and the deposit ceiling are all built from the item lines.
| Field | Step | Description |
|---|---|---|
| Renter | Details | Name or linked contact |
| Start Date | Period | Rental period start |
| End Date | Period | Rental period end |
| Items | Items | Select from owned gear |
| Pricing | Pricing | The basis, the deposit, tax, discount (below) |
| Notes | Review | Terms, conditions, pickup details |
- Optionally capture the renter's signature
- Click Save (or Save & Generate Invoice)
How a sub-rental is priced
Added in v0.544.0. The Pricing step starts with a basis, and everything below it follows from that choice:
| Basis | What the total is |
|---|---|
| Per item | Each item line × the booked days. The default, and how every existing sub-rental reads. |
| Daily rate | One rate for the whole package × the booked days. |
| Daily · days used | One rate, billed on the days actually used — agreed later. |
| Fixed price | One figure for the job, whatever the duration turns out to be. |
- Days used is for the common arrangement where the gear goes out for a long window because that is when it is free, and both sides settle the day count afterwards. Leave the count blank and the sub-rental bills nothing — no amount has been agreed yet, and every total says the days are still to be agreed rather than showing a settled €0.00. Fill it in later (the booked period is one tap away via Full period) and the money appears.
- A discount on the whole deal — a percentage or a fixed amount — applies to any basis, comes off before tax, and prints as its own line so the concession stays visible. The per-item discount still works alongside it.
- Discount to a target total (v0.711.0). Rather than working the percentage out yourself, name the figure you actually want to charge and let the app derive it. The deal-wide control measures against the subtotal before discount; the same helper sits on every item line, measuring against that line's price × quantity. Select several lines and the bulk bar's To total action applies one percentage across all of them, so the selection lands on your number — not each line separately. In every case an ordinary percentage discount is what gets stored.
- In a package basis the item lines stay fully editable and stay on every document as the manifest — they are simply not what the total is built from, and the Items step says so. The sub-rental PDF drops its price columns there and states the agreed price once, rather than printing line totals that do not add up to the total beneath them.
- An invoice or quote draft seeded from a package-priced sub-rental carries one line at the agreed price, not the recorded item prices.
Full specification: docs/features/subrental-pricing-modes/.
Managing Sub-Rentals
- View all: Sub-Rentals page shows all transactions sorted by date
- Edit: Click a sub-rental to modify details
- Status change: Mark items as Returned when gear comes back
- Archive: Move completed transactions to archive
Unsaved changes are never dropped silently (v0.558.2). Closing the edit form with pending edits — Escape, a click outside the form, the ✕, or Cancel — asks first. This matters most for Escape: dismissing a native date picker or a dropdown sends Escape to the form too, which used to close the whole modal and discard everything. Escape while the "Discard changes?" prompt is open means keep editing. Simply opening a sub-rental is not an edit, so a linked one that fills its period in from the project still closes without a prompt.
Project link — two-way sync (v0.439.0)
Sub-rentals linked to a project stay in sync with the project's gear list in both directions:
- Project → sub-rental: every gear-list item with an owned/shared provider assignment appears as a project-managed line — including manually assigned items without a matched inventory unit (resolved by catalog id or name) — with the real assignment quantity. Quantity edits on the project flow through automatically.
- Sub-rental → project: you can add your own items to a linked sub-rental (quick-add, Browse gear, categories, bulk actions). On save, items that reference your inventory are mirrored back onto the project's gear list (an existing matching row gains the provider assignment; otherwise a new row lands in a "From sub-rental" category) and become project-managed.
- Link an existing sub-rental: unlinked sub-rentals show a "Link to project" selector in the edit form — picking a project connects them and mirrors the items as above.
Project-managed lines stay read-only in the sub-rental (edit them on the project); your own added lines stay fully editable.
The Sub-Rental Tile
Each transaction renders as a tile with three regions:
1. Header + metadata — renter name, status badge, date range, totals.
2. Document preview row — five slots, one per document kind: Quote, Delivery, Return, Invoice, Carnet. Filled slots show a small page-1 thumbnail of the generated PDF; empty slots show the kind's icon as a muted placeholder. Clicking any slot does the right thing:
- A filled slot re-downloads the cached PDF.
- An empty slot generates the PDF first time and captures a thumbnail for next time.
The thumbnails persist on the transaction, so the tile reflects what you've already produced without regenerating.
3. Right-action toolbar — three visually separated groups so it reads as one unit:
- Status — pipeline dropdown (Draft → Requested → Quoted → Accepted → Active → Returned → Invoiced → Completed / Archived). Finalizing the Delivery Note sets a pre-active rental to Active for you (see below).
- Utility — Scan QR · Export the Factur-X / ZUGFeRD XML for a third party to import.
- Manipulate — Edit · Duplicate · Delete.
On mobile the same three groups render horizontally below the metadata so the tile stays compact.
Return-Condition Badges
Once a sub-rental has been physically returned (status is Returned / Invoiced / Completed / Archived or you've finalized the Return Note), the tile gains a row of badges summarizing the return audit:
- Damaged: N — count of components flagged
damagedduring return check-in. - Missing: N — count of components flagged
missing. - Was Unavailable: N — items that came back damaged or missing and were already booked elsewhere, marked broken in inventory, or weren't in your owned catalog at all. Hover the chip for a per-item breakdown listing the reasons (
booked on another job/marked out-of-service in inventory/not in your owned inventory).
The "Was Unavailable" chip is the one to actually pay attention to — it's the audit signal that a sub-rental shouldn't have gone out in the first place.
Delivery & Return Notes — the handover wizard (v0.559.0)
Both handover documents open as a step wizard that follows the physical handover, rather than one long page — five steps on a delivery note, up to six on a return note:
- Items — tick each line off as it changes hands (or scan it). Serial pickers and the per-unit component sub-lists live here.
- Condition — the scratch-sheet audits. This step only exists when the rental actually carries audit-eligible gear (lenses, monitors, cameras); without it the wizard has four steps. The audit can be worked on glass or on paper — see Auditing on paper below.
- Notes & scans — the note's own remarks field and any attached scanned paperwork.
- Signatures — who is picking up / handing back, then both pads. Use the expand button to fill the screen and turn the iPad around.
- Request — return notes only, and only while something is flagged damaged or missing. See below.
- Finish — what is still open, then Finalize.
Condition is recorded at two levels, and they mean different things. A line's own OK / Damaged / Missing answer is about whole units — "two of the three bodies never came back". Expanding a line with components gives every part on every unit its own answer: the tophandle, the cage, the batteries. A body handed back minus its handle is one line at OK and one component at Missing, and that is what the note, the PDF and the request all say. Set Missing directly rather than tapping through Damaged — the control is a three-way choice precisely because every transition writes to the linked gear's wear log, so passing through Damaged files a damage report against gear that was only ever missing.
Auditing on paper. A rental counter is not always a place where a tablet is practical — the gear is on a trolley and the sheet wants to be paper. The Condition step handles both directions:
- Print sheets (in the step's header) renders exactly the sheets the note PDF appends and sends them to the printer: filled with the last approved condition, or with this note's audit once one has been submitted. That is the sheet to carry out to the trolley and mark up by hand.
- Upload Scan (inside an audit) puts the marked-up paper back into the record. Photograph or scan the signed sheet, align it over the drawing with the four corner handles, and it is stored with the audit you submit — the same optical merge Owned Gear has always offered on a baseline. It is available while recording a pickup or return audit, and deliberately not while reviewing one: a reviewer counter-signs somebody else's finding, they do not re-shoot the evidence.
Telling the renter what didn't come back (the Request step, v0.688.0). Flag anything and a Request step appears between Signatures and Finish. It lists what is outstanding — each flagged component under its own name, tagged with the item it belongs to ("Sony XLR-H1 Tophandle — Part of Sony FX3"), counted in units, and carrying whatever remark you typed against it. Untick anything you don't want to raise.
It is a notice, not a demand. You are not asked to decide whether you want the item back or want to be paid — that is the outcome of the conversation the notice starts, and you record it afterwards as a settlement (below).
Preview, then choose how it goes out. Preview notice renders the missing-items PDF — exactly what the renter receives — and nothing leaves the app until you act from inside that preview:
| Route | What it does | Needs |
|---|---|---|
| Send notice | Issues a link, emails it to the renter, and additionally raises an in-app notification if they use Cine Power Planner. | A renter email, a connection, and being signed in |
| Draft mail with PDF | Hands the PDF to your own mail app with the renter pre-filled. A real attachment on iOS/Android/macOS and in Chrome; elsewhere it opens a draft and downloads the file for you to attach. | Nothing |
| Download PDF | Saves the file. Send it however you like. | Nothing |
The last two work for a renter who has never heard of Cine Power Planner, and when you would rather send from your own mailbox. They are always offered — including when you are offline or signed out.
What the renter answers. Per line: Bringing it back (optionally with a date) or It is lost. For anything you flagged damaged they must say what happened before they can send — a damaged item returned with no account of the damage is the argument the notice exists to prevent.
Then you settle each line. Every line carries a status: Not sent yet → Notified → Renter replied → Returned / Billed / Written off. The first three follow the notice on their own; the settlement is yours to set, and it never overwrites what the renter said — the line keeps both. You can settle a line that was never on a notice at all, which is what happens when someone simply hands the item back at the counter.
Corrected in v0.691.4: a component-only flag used to be reported under the parent line's name, so a missing tophandle reached the renter as "Sony FX3 — Missing". Changed in v0.693.0: the per-line "Asking for" choice was removed, the preview and the two PDF routes were added, and a failure to reach the request service no longer claims the backend is undeployed.
The rail across the top is tappable, so no step is more than one tap away, and it reports state rather than history:
| Marker | Meaning |
|---|---|
| ✅ green tick | Nothing outstanding on that step — every item confirmed by both parties, or both signatures captured |
| ⚠️ amber | Something is still open, but you can finalize anyway |
| ❌ red | Finalizing is refused until this clears — currently only a condition audit awaiting review |
Finalize is reachable from every step. A delivery note with three items unticked is a legitimate document; the wizard guides, it never gates. The Finish step spells out the same findings in full — unconfirmed items with the per-party split, which signature is missing, how many audits are pending — each with a button that jumps to the step that fixes it. A note that is already finalized opens directly on Finish, where Download PDF and Send via Email live, alongside Quick edit, Edit items and Unlock.
Finalizing a delivery note sets the sub-rental to Active (v0.716.0). Signing off a handover is
the statement that the gear left the building, so the status no longer waits for you to remember the
dropdown: the same write moves the rental to Active, writes its rental_out timeline events,
counts the deal toward Own Gear ROI and Total Revenue, and raises the "rental is active"
notification — exactly as if you had changed the status by hand. The confirm dialog says so before
you commit.
It only ever moves a rental forward, and only from a stage before Active — Draft, Requested, Quoted, Negotiating, Accepted. A rental that is already Active is untouched, and one that is Returned, Invoiced, Completed, Archived or Cancelled stays where it is: re-finalizing a note on a settled rental must not reopen its rental-out accounting. Unlocking a note never demotes it either. An additional delivery finalized on a pre-active rental promotes it the same way. If you set the status yourself in the same action, your choice wins.
Per-item notes now show on both notes. The note you write on a line in the sub-rental's item list (the ⋯ menu → Add note) appears under that item on the delivery and return note, quoted in grey — the same text the PDF has always printed under the row. It is read-only there: it belongs to the sub-rental, not to this note. The note's own per-row remark (the field that appears on the return checklist when you flag a line damaged or missing) is separate, and both print side by side.
Importing a Sub-Rental from a Factur-X / ZUGFeRD XML
If a supplier sent you an E-Rechnung as a .xml file (or you exported one earlier from this app), you can import it and turn it into a draft sub-rental in seconds:
- Click the Import button next to the New Sub-Rental CTA.
- Pick the
.xmlfile (max 2 MB). - A pre-filled
SubRentalFormopens with renter, VAT ID, Leitweg-ID, dates, line items, currency, tax rate, tax treatment, and notes already populated. A banner across the top says "Imported from e-invoice". - Verify, adjust, and save.
If the file isn't a recognized Factur-X / ZUGFeRD payload, you'll see a single inline error toast — no draft is created. The same XML you import is exactly the one the app's Invoice export produces, so the round-trip is lossless for sub-rentals you've sent yourself.
PDF Invoices
Click Generate Invoice on any sub-rental to produce a formatted PDF including:
- Your company info and renter details, automatically populated with VAT ID and Leitweg-ID.
- ZUGFeRD (Factur-X) compliant XML embedded within the PDF/A-3 output for German E-Rechnung B2B compliance.
- User-uploaded branding logos and accent colors synced via settings.
- Itemized gear list with quantities and rates
- Date range and total cost
- Captured signature (if available)
Delivery & Return Notes
You can also generate Delivery Notes and Return Notes.
- The document is titled with the sub-rental's own name — the same name the tile shows, so the Gear List, Delivery Note and Return Note match what you called the rental in the app. A linked project moves down into the meta rows as Project:, and the renter stays where it always was, one line below the title. (Older sub-rentals saved before the name field existed still fall back to the project, then the renter.)
- Both the Delivery Note and the Return Note export automatically append Condition Check-In Scratch Sheets at the end of the document, for every auditable item on the rental. The return note carries the return audits — a pickup audit still waiting for review never prints there in their place.
- Use the Barcode Scanner flow to quickly map checked-out or checked-in gear against your Owned Gear inventory.
- The scanned code is trimmed before anything compares it, so the prefix or suffix some hardware scanners add does not read as a different label. Scanning the same body twice is recognised as a repeat ("already scanned") instead of filling a second slot on a line of quantity 2 or more.
- A blank read is discarded. A hardware scanner sends a space like any other character, so a misread can deliver nothing but whitespace; that no longer matches whichever gear record happens to come first in your catalogue.
- Matching runs against each Owned Gear record's barcode, RFID tag, serial number, or list of serial numbers. A field you left empty on the record never matches anything — an absent serial is not a code.
- Serial numbers — when an item has more than one serial on file, the Delivery Note row shows a chip per serial so you record which body went out; the chosen serials print on the PDF. How many you may pick depends on what the serials mean:
- Several identical units (three cameras, one serial each): you may name as many serials as the line's quantity — renting one of three means picking one body, and the others grey out.
- A set (one item carrying several serials, e.g. a Tentacle SYNC E MK2 Standard Set with two bodies): every serial stays selectable and all of them are pre-selected, because the whole set goes out on that one line. Deselect any body that stayed home.
- The app tells the two apart from the item's Quantity in Owned Gear: more serials than units means a set. To record a set, open the item, leave Quantity at the number of sets you own, and use Add serial number for each body.
- The right-hand signature column on every Delivery / Return Note is labelled "Picked up by" / "Returned by" — it is signed by whoever physically collects or returns the equipment, not necessarily the renter on the contract.
Partial Returns & Additional Deliveries
Real rentals rarely come back all at once. Both note modals carry a handover-documents bar at the top:
- Partial return — when only some items come back (early return, staggered wrap), click + Partial return in the Return Note modal, pick the items and unit quantities (the picker pre-selects everything still outstanding), and set the return date. Each partial return is a full note of its own: checklist with per-unit condition checks, signatures, finalize lock, attached scans, and its own PDF ("Partial Return Note #1"). Damaged/missing conditions recorded in a partial return feed the owned-gear wear log and the tile badges exactly like the final return note.
- Additional delivery — when items are added to a running rental (via Edit items), document their handover with + Additional delivery in the Delivery Note modal. The picker pre-selects items not covered by an already-finalized delivery note.
- A second partial return only offers what is still out. A line that came back on an earlier return note is gone from the picker — not greyed out, gone — and a count above the list says how many were hidden, so the same unit cannot be booked back twice. A line that came back only in part stays, with its remaining units as the suggested quantity. An additional delivery is not filtered this way: its picker still lists every line, because a finalized initial delivery already covers them all.
- The tile shows a "Returned x/y" chip while partial returns exist on an open rental. When the last outstanding unit comes back, a toast offers to set the status to Returned — nothing changes without your click.
- A finalized partial return takes its items off the final return. The Final return pill then lists only what is still out: a line that already came back disappears from the checklist, a line that came back in part shows just its remaining units, and a banner above the list says how many units were returned earlier. Download, Print and Send via Email produce the same scoped document, with a "This document covers" line naming the split — so nobody is asked to check in gear that is already back on the shelf, and the signed return note does not claim items came back on a date they did not.
- The Initial delivery pill is unchanged and still shows the classic full-rental document. A sub-rental with no finalized partial return renders exactly as it always did on both notes.
Extending the Rental Period After Pickup
When a rental runs longer than planned, use Extend (calendar icon on the tile toolbar, visible for accepted/active rentals):
- Pick the new end date — the return appointment moves along automatically, keeping its time of day. This is what clears an Overdue mark: the overdue check watches the return appointment first, so changing only the end date in the edit form would have left the rental flagged.
- The dialog previews the day-count and recomputed total before you confirm (more days ⇒ higher total, same daily rates).
- Every change is recorded in the sub-rental's extension history with an optional note (e.g. "shoot ran over").
Pickup / Return Person
Sometimes the person who actually picks up or returns the gear isn't the renter — a runner, AC, or driver may handle the physical handover. Two optional fields on every sub-rental and every per-provider pickup appointment let you capture this:
- Pickup person — who is collecting the equipment
- Return person — who is bringing it back
Both are independent (same person, two different people, or neither). Each accepts a name and optional email, phone, and role/company. You can:
- Pick from your Contacts or the linked Project's Crew — the picker shows both lists, deduped by email. Selecting an entry pre-fills the four fields from that contact / crew record.
- Type free-form — useful for one-off runners who aren't in your contact list. Free-form is always available, even if you have no contacts or crew on the project.
In the Delivery and Return Note panels, the picker pre-fills the renter's name as a placeholder when you first open it — keep it as-is, override with the actual collector, or clear the field entirely to leave a blank line on the printed PDF for a handwritten signature. When the printed name differs from the renter, an italic "On behalf of: {renter}" sub-label appears above the signature line.
On the gear-request workflow, the per-provider pickup appointment carries the same two fields, and the "Send to provider" email body includes a "Pickup will be done by …" / "Return will be done by …" line so the provider knows who to expect at the door.
Tips
- Link to contacts: Makes it easy to reach the renter for pickup/return coordination
- Set daily rates on owned gear: Pre-fills pricing in sub-rental forms
- Capture signatures on delivery: Legal proof of equipment handover
- Track income in Analytics: Sub-rental revenue appears in the ROI dashboard
- Use Pickup person for runners: When a different person physically picks up the gear, set the Pickup person so the printed name on the Delivery Note matches the signature
Related Documentation
Requesting gear from someone who isn't on Cine Power Planner
If you set a gear item's provider to a contact who has no account — someone who is not on the project and not in your collaboration — you can still send them a real sub-rental request.
Where to send from
- Rental tab → the provider's row → Send sub-rental request. This sends one request covering every item that provider is supplying.
- Gear list → an item's provider menu → the send icon beside the contact. This asks for just that item.
The action appears only for a crew/contact provider who has an email on file. If they have none, the control tells you to add one.
What they receive
An email with the project, the rental period, and every requested item with quantities, plus a link. The link opens a page that needs no login and shows the same details. Replying needs a free account: signing up redeems the link, connects the two of you as crew, and puts the request into your normal quote / accept / decline flow.
Afterwards your contact record is linked to their new account, so the next time you pick them as a provider they count as connected crew and the invite step disappears.
Good to know
- "Send to provider" (next to it) is a different thing — that is the pickup-appointment confirmation, and it assumes the booking is already agreed.
- Once a request has gone out the row reads Request sent instead of offering the button again.
- Sending again issues a fresh link and retires the old one. Links expire after 30 days.
- Set a display name under Settings → Account; without one the invite page says "A production" rather than your name.
Public gear requests — what an accepted one turns into
Accepting a public gear request — or the requester signing your /gq/ quote —
creates a real sub-rental. Its lines are matched back to your actual owned gear,
which is what makes them behave like a rental you built by hand:
- Components appear. The count chip on the row, the per-unit sections of the delivery and return notes, and both note PDFs all read the linked item, so a camera arrives with its parts instead of just its name.
- A requested gear set arrives as its members, not as one line named after the
set. They stay grouped under a
Set: <name>heading on the notes, and the price you agreed for the set is spread across the members — the total is unchanged. - A line links only when the match is certain. Two owned-gear items sharing a name, or a manual catalogue entry with no owned gear behind it, arrives as free text rather than a guess: open its name field and pick the right item. Everything downstream reads the link live, so it fills in the moment you set it.
The link is also what books the gear out — an unlinked line does not appear when you check that item's availability for another job. Sub-rentals created before v0.558.1 keep whatever they were given; re-pick the item on each line to bring its components in.
Public gear requests — archiving the ones you've finished
Requests submitted through your public catalogue links land in Public gear requests, at the bottom of the Sub-Rentals page. Once you have dealt with one — accepted it and emailed the renter, or declined it — you can archive it so new requests are not buried under finished business.
Archive appears on a request only once it is handled: confirmed, active, returned, completed, declined, expired or cancelled. A request still waiting for an answer has no Archive button, so nothing unanswered can be hidden by accident.
Archived requests leave the list and move into an Archived (n) section below it. Open that section to read them; Restore puts one back. When everything is archived the panel says so ("No open requests — all of them are archived") instead of claiming none ever arrived. A notification email that deep-links to an archived request opens the section for you.
Archiving changes nothing but visibility. The request keeps its status and its history, no email is sent, and the sub-rental created when you accepted keeps running through its own pickup → return → invoice pipeline. Restoring a request does not create a second sub-rental — the two are linked once, at accept time. The archive lives on the request itself, so it holds across reloads and devices.
Last Updated: 2026-09-08 Version: 0.790.2
Gear requests from connected crew who browsed your shared catalogue
A crew member you share a gear catalogue with can request from it directly, without a public link (see Rental Houses → Shared with me). Their ask arrives under Incoming gear requests — not the public inbox — carrying a From your shared catalogue chip.
- The card's title is the catalogue's name, not a project's: a catalogue request need not be about a project. Their name sits beside it, and a project appears only if they linked one.
- The lines arrive unpriced, because shared catalogues carry no prices. Use Send quote to price them; they accept, decline or counter-offer in their own My gear requests list. Accepting without a quote also works — the sub-rental is created either way, with a zero total until you price it.
- On confirm the request materialises as a real sub-rental, exactly like an accepted public request: lines matched back to your owned gear, components intact, ready for delivery and return notes.
- From that moment the gear-request card stops offering Mark as Picked Up / Returned / Invoiced and points at the sub-rental instead. One rental advances from one place — the sub-rental, which owns the notes and the invoice.
- Request Cancellation stays on the card for both parties, because it acts on the agreement rather than on the handover.
