lambda-erp 0.8.3__tar.gz → 0.8.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/PKG-INFO +1 -1
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/chat.py +1 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/pyproject.toml +1 -1
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/.gitignore +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/LICENSE +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/README.md +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/__init__.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/attachments.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/auth.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/bootstrap.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/demo_limits.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/deps.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/errors.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/main.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/oauth.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/pdf.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/providers.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/remarks_md.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/routers/__init__.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/routers/accounting.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/routers/admin.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/routers/analytics.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/routers/availability.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/routers/bank_reconciliation.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/routers/chat_api.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/routers/documents.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/routers/masters.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/routers/mcp.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/routers/proposals.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/routers/reports.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/routers/setup.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/services.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/templates/document.html +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/api/templates/proposal.html +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/docs/agents/README.md +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/frontend/LICENSE +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/frontend/README.md +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/frontend/src/api/client.ts +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/__init__.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/__init__.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/bank_transaction.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/budget.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/chart_of_accounts.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/general_ledger.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/journal_entry.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/payment_entry.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/pos_invoice.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/purchase_invoice.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/revaluation.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/sales_invoice.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/setup/__init__.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/setup/engine.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/setup/pack.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/setup/packs/__init__.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/setup/packs/ch.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/setup/packs/de_common.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/setup/packs/de_skr03.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/setup/packs/de_skr04.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/setup/packs/generic.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/setup/profiles.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/setup/spine.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/accounting/subscription.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/assets/__init__.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/assets/asset.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/assets/reservation.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/buying/__init__.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/buying/purchase_order.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/controllers/__init__.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/controllers/currency.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/controllers/defaults.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/controllers/pricing_rule.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/controllers/taxes_and_totals.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/database.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/exceptions.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/hooks.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/model.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/selling/__init__.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/selling/proposal.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/selling/quotation.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/selling/sales_order.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/simulation.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/stock/__init__.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/stock/delivery_note.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/stock/purchase_receipt.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/stock/stock_entry.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/stock/stock_ledger.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/lambda_erp/utils.py +0 -0
- {lambda_erp-0.8.3 → lambda_erp-0.8.4}/terraform/README.md +0 -0
|
@@ -2280,6 +2280,7 @@ Use these only for items flagged `is_asset_tracked` on the Item master. Neither
|
|
|
2280
2280
|
- **Reservation** (slug `reservation`) books a time window. Required: `from_datetime` and `to_datetime` (`YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`; a bare date means midnight). Windows are **half-open** — a hire ending on the 19th and the next starting on the 19th do NOT clash. Two ways to book:
|
|
2281
2281
|
- **pooled** — set `item_code`, `warehouse` and `qty`: "*a* machine of this type from that yard". Use this at quotation/order time when the specific unit doesn't matter yet.
|
|
2282
2282
|
- **unit** — set `asset`: "*that* machine". `item_code`, `warehouse` and `qty` are filled in from the Asset automatically.
|
|
2283
|
+
- **Who it's for (do NOT skip this):** set `party` to the hiring customer's id (e.g. `CUST-005`) with `party_type = "Customer"`. The customer is almost always given by NAME — "reserve the 17t for Hans Meisterhans" — so FIRST resolve the name to a record with `search_masters` (master_type "customer") and set `party` to the matched id; never put the raw name in `party`. No match → create the customer (or ask which existing one is meant), then book. A reservation with no `party` is only for an internal block (maintenance, transport, transfer) — if the user named a customer, a booking without `party` set is a bug, not an option.
|
|
2283
2284
|
- `status` is Reserved / Out / Returned / Cancelled. **Reserved and Out block the calendar; Returned and Cancelled do not** — so a hire that comes back early frees its slot the moment you set it to Returned. Link a booking to the order that caused it with `voucher_type` + `voucher_no`.
|
|
2284
2285
|
- **Double-booking is refused at save time.** If you get "already committed" (that unit is taken) or "free at" (the yard's pool is exhausted for that window), do NOT retry blindly — report the conflict, then offer the alternatives: different dates, a different yard, or a different model.
|
|
2285
2286
|
- To answer "what's free between X and Y", list reservations for the item over the window and compare against the Assets that exist; a unit with no overlapping Reserved/Out row is available.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|