Recued
Menu
← Back to recipes

Delete a pending item

by recued-core v2 6 views

Use “Delete a pending item” in Recued. Remove something from the pending list. If it came from logged hours, you choose whether those hours go back on the unbilled list or get deleted with it.

Complete workflow

Invoice Book 10 pinned recipes

Use Invoice Book in Recued for invoicing, receivables, getting paid, and freelance. It includes 17 built-in actions and 9 ready-to-run workflows. Actions that change data use Recued's approval controls.

You are viewing one recipe in this workflow. Installing it opens the complete pack so its other recipes and background automations arrive together.

Delete a pending item
This recipe

Use “Delete a pending item” in Recued. Remove something from the pending list. If it came from logged hours, you choose whether those hours go back on the unbilled list or get deleted with it.

pack:invoice-bookinvoicingbillablerecords
by recued-core pinned v2

Use “Issue an invoice” in Recued. Turn the entries you picked into an invoice: lines frozen at issue time, total computed once from minutes, and a balance that payments come off.

pack:invoice-bookinvoicingreceivablesrecords
by recued-core pinned v2

Use “Record a payment” in Recued. Take a payment off an invoice's balance. Part payments are supported; overpayment is refused rather than absorbed, and the invoice settles when the balance reaches zero.

pack:invoice-bookinvoicingreceivablespayments
by recued-core pinned v2

Use “Who owes you” in Recued. Every open invoice with what is outstanding, which are overdue, and the oldest one still unpaid.

pack:invoice-bookinvoicingreceivablesoverdue
by recued-core pinned v2

Use “What each client owes” in Recued. One line per client: what is outstanding, across how many invoices, and how long the oldest has been due.

pack:invoice-bookinvoicingrecordsaggregate
by recued-core pinned v2
Show all 10 recipes

Use “Add something billable” in Recued. Anything you can charge for that is not logged time — a fixed fee, materials, a call-out. A negative amount is a credit.

pack:invoice-bookinvoicingbillablerecords
by recued-core pinned v2

Use “Pull hours into pending items” in Recued. Turn unbilled time entries into pending billable items, priced at a rate you give.

pack:invoice-bookinvoicingbillablebridge
by recued-core pinned v2

Use “What could go on an invoice” in Recued. Everything billable and not yet invoiced — hours you pulled across and fees you typed in — each with its id, so you can choose.

pack:invoice-bookinvoicingbillablerecords
by recued-core pinned v2

Use “Carry a balance forward” in Recued. Close a part-paid invoice and issue a new one for exactly what is left, with the VAT carried in proportion. The new invoice takes no items.

pack:invoice-bookinvoicingreceivablesrecords
by recued-core pinned v2
View pack details, dependencies, and permissions →

The hours have to go somewhere

This is why the recipe exists. pull-billable-hours marks an hour invoiced and points it at the item it created. Delete that item on its own and the hour is still claimed, pointing at nothing — so it never comes back on the unbilled list, and you never see it again. Silently unbillable. That is the whole failure this closes.

So the item cannot leave alone. Every hour behind it ends up in one of two honest places, and the checkbox is which:

  • unchecked — the hours go back on the unbilled list. The item was wrong; the work still happened. They show up in list-unbilled-hours again and can be pulled onto another invoice.
  • checked — the hours are deleted with it. The work was logged in error. Gone for good, and you will be asked to confirm, because a time log is the only record that it happened.

There is no third option where the hours stay claimed with nothing claiming them. That state is the bug.

The checkbox does nothing for a typed item. Something you entered by hand has no hours behind it — there is nothing to release or delete.

Only pending items

An invoiced item cannot be deleted here. Its amount is inside an issued invoice's total and inside its stored lines; removing the item would leave that total unexplained, and the client already has the document. Use a credit instead — add a negative billable item and put it on the next invoice. That is what credits are for: an invoiced item is undone by a new line, a pending one is undone by deleting it.

If it fails halfway

The hours are settled first, the item second. Deliberately, and the order is the whole safety argument. If the item went first and the hours step then failed, you would be left with exactly the invisible orphan above — claimed hours, no item, no way to notice. This way a half-run leaves the item sitting visibly in your pending list: run it again and it finishes. Re-running is safe, including after the hours are already gone.

It needs FULL access at install — on TWO packs

This recipe is DENIED if either pack was installed with write access — pick all. Deleting a record is classed destructive, and write does not grant that tier.

⛔⛔ AND ONE OF THE DELETES IS NOT IN THIS PACK. Clearing the hours behind an item calls billable-hours.entry.delete, so billable-hours must ALSO be installed with full access — not just invoice-book. This is the surprising half: the scope you have to pick is on a pack you may not have realised was involved, and the item delete can succeed while the hours delete is refused.

The refusal is operation_not_granted at the gateway, before the recipe's first step runs. It cannot be detected and explained for you, which is why it is written here rather than left to a runtime message.

How it works 26 steps

Inspect the data fetches, transforms, gates, and output this recipe runs.

Process (26 steps)
item_id trim
Trim whitespace from setting item id
has_id compare
Check if item id has data
id_guard guard
Stop if has id equals
picked ?
found compare
Check if picked record id has data
found_guard guard
Stop if found equals
is_pending compare
Check if picked record status equals pending
pending_guard guard
Stop if is pending equals
from_hours_source compare
Check if picked record source equals hours
entry_id default
Apply default
has_entry_id compare
Check if entry id has data
from_hours all
Check if all conditions are true
entry ?
skip: step.from_hours equal false
entry_found compare
Check if entry record id has data
entry_revision default
Apply default
do_delete_entry all
Check if all conditions are true
do_release_entry all
Check if all conditions are true
remove_entry ?
skip: step.do_delete_entry equal false
release_entry ?
skip: step.do_release_entry equal false
item_revision default
Apply default
remove_item ?
hours_note_kind ternary
Apply ternary
hours_note ternary
Apply ternary
stranded all
Check if all conditions are true
stranded_note ternary
Apply ternary
card to_summary
Format results as a summary card
Settings 2 configurable

Configurable at install. Defaults shown — change them anytime in Recued.

item id setting = [object Object]
delete hours setting = false

About

Tags

pack:invoice-bookinvoicingbillablerecordsv2

Details

26 steps 2 configurable settings recipe_id: delete-billable-item