Skip to content

Changes

Started by timer
Started 7 days 7 hr ago
Took 1 min 10 sec on built-in

Summary

  1. Click-to-dial: originate agent leg via logship-ctd-agent so desk phone and Sangoma Talk both ring (details)
  2. Quick product modal on the products list: name + image + price in one step, defaults Standard/Each/Standard, price into every active price list version with optional per-version override; staff can pick org and category, merchants get the plain form; the toolbar "+" now opens the modal (details)
  3. Product BOM editor: IsBOM toggle + components card in the form, modal with order-line product search, qty stepper and drag-and-drop ordering, BOM header auto-created like the WebUI prefill, batch line save; product form: checkbox auto-save, Status/Organization split, status tooltips, tenant name fix, Quantities beside Identifier (details)
  4. Product edit page off tedir: ProductForm + all ProductDetailRecord tabs use the Nuxt UI SelectBox wrapper, DateInputDe replaces tedir-calendar, UFileUpload replaces the tedir-dropzone gallery uploader (details)
  5. Product form: Fulfillment card 2/3 wide with Weight over Dimensions in the free third; right column keeps Organization & Status and BOM (details)
  6. Lead page: "KI-Analyse" — Claude assessment of the whole lead history with editable, sendable e-mail draft (details)
  7. Offers: new standard defaults — no free pick, goods receipt by time, shelf L 5.50, service fee 99, DHL ≤ 1 kg 3.79, pallet 12.90; quote PDF and contract documents attached to the mail by default (details)
  8. Fulfillment invoices: separate "Nachbelastung DHL Paket" position for shipping fees DHL invoiced after accounting (details)
Commit 7eae76b2eb0c791c727151350a321cfa9b1c7570 by info
Click-to-dial: originate agent leg via logship-ctd-agent so desk phone and Sangoma Talk both ring

ASTERISK_ORIGINATE_CHANNEL / NUXT_ASTERISK_CHANNEL_TEMPLATE were only set on the prod box
by hand and got wiped by every deploy (.env is regenerated from .env-prod).
The file was modified.env-prod (diff)
Commit e0481abd4cad3d6b8d47df60af38b2524b844514 by info
Quick product modal on the products list: name + image + price in one step, defaults Standard/Each/Standard, price into every active price list version with optional per-version override; staff can pick org and category, merchants get the plain form; the toolbar "+" now opens the modal
The file was addedserver/api/materials/products/quick-store.post.ts
The file was addedapp/components/materials/ProductQuickAddModal.vue
The file was modifiedapp/pages/materials/products/index.vue (diff)
The file was modifiedapp/assets/langs/shared.js (diff)
The file was modifiedapp/components/HeaderAction.vue (diff)
The file was addedserver/api/materials/price-list-versions/available.get.ts
Commit 90f2903c36133dfc34afbb6f63c6b119da78d16b by info
Product BOM editor: IsBOM toggle + components card in the form, modal with order-line product search, qty stepper and drag-and-drop ordering, BOM header auto-created like the WebUI prefill, batch line save; product form: checkbox auto-save, Status/Organization split, status tooltips, tenant name fix, Quantities beside Identifier
The file was addedserver/api/materials/products/[id]/flags.put.ts
The file was addedapp/components/materials/ProductBomCard.vue
The file was modifiedapp/pages/materials/products/[id]/edit.vue (diff)
The file was addedserver/api/materials/products/[id]/bom/lines.put.ts
The file was addedserver/api/materials/products/[id]/bom/lines.get.ts
The file was addedapp/components/materials/ProductBomModal.vue
The file was modifiedapp/components/materials/ProductForm.vue (diff)
The file was addedserver/api/materials/products/[id]/bom/ensure.post.ts
The file was addedserver/api/materials/products/[id]/bom/flag.put.ts
Commit d9b04034730e3fd6cbf9e0e2ca5f891ddfbd186f by info
Product edit page off tedir: ProductForm + all ProductDetailRecord tabs use the Nuxt UI SelectBox wrapper, DateInputDe replaces tedir-calendar, UFileUpload replaces the tedir-dropzone gallery uploader
The file was modifiedapp/components/materials/ProductDetailRecordSubstitute.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordTranslation.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordBom.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordOrderedQtyLog.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordCost.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordPartner.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordReplenish.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordPrice.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordComponents.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordPurchasing.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordReservedQtyLog.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordTransaction.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordConversion.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordRelated.vue (diff)
The file was modifiedapp/components/materials/ProductDetailRecordAccounting.vue (diff)
The file was modifiedapp/components/materials/ProductForm.vue (diff)
Commit db89dca3a091af1372d3d6fa32f3057da7922e96 by info
Product form: Fulfillment card 2/3 wide with Weight over Dimensions in the free third; right column keeps Organization & Status and BOM
The file was modifiedapp/components/materials/ProductForm.vue (diff)
Commit 33007b3a142e9ec5dd110fcca59044f522893fc9 by info
Lead page: "KI-Analyse" — Claude assessment of the whole lead history with editable, sendable e-mail draft

New purple CTA + toolbar icon on /edit/lead-<id> opens <LeadsAssessmentModal>: a background job collects
the AD_User record, contact activities, saved offer/contract/forecast/questionnaire conditions, signing
links, attachment names, every mailpiler mail with its body and the FreePBX recordings with their whisper
transcripts (optionally transcribing missing ones first), sends the dossier to Claude (claude-opus-5-5,
server-side fallbacks, cached system prompt) and renders the structured result: closing probability,
stage, summary, prioritised next steps, proposal, positives/risks, needs, pricing, open questions,
timeline, data gaps. DE default with EN switch, copy-as-text, last result reopens instantly.

The proposed e-mail draft is an editable form (subject/body, save) that can be sent to the lead's
server-resolved address via the local MTA, from info@logyou.de with the sender's name, Reply-To the
sender, with a branded table-layout signature (logo colours, LogYou logo, legal footer) and a
C_ContactActivity (EM) entry.

Server: server/utils/leads/leadAssessment.ts (job state in data/lead-assessments, 202 + polling across
PM2 workers), routes server/api/leads/[id]/assessment/{index.get,index.post,draft.post}.ts,
runtimeConfig.anthropic (ANTHROPIC_API_KEY / ANTHROPIC_WORKSPACE_ID / ANTHROPIC_MODEL),
@anthropic-ai/sdk dependency, translations de/en/es, recipe .claude/rules/leads/ai-assessment.md.
The file was modifiedpackage.json (diff)
The file was addedserver/utils/leads/leadAssessment.ts
The file was addedapp/components/leads/AssessmentModal.vue
The file was addedserver/api/leads/[id]/assessment/index.post.ts
The file was modified.env (diff)
The file was modified.env-prod (diff)
The file was modifiedapp/pages/users/leads/[id]/edit.vue (diff)
The file was addedserver/api/leads/[id]/assessment/index.get.ts
The file was modified.gitignore (diff)
The file was addedserver/api/leads/[id]/assessment/draft.post.ts
The file was added.claude/rules/leads/ai-assessment.md
The file was modifiednuxt.config.ts (diff)
The file was modifiedpackage-lock.json (diff)
The file was modified.env-dev (diff)
The file was modifiedapp/assets/langs/shared.js (diff)
Commit f016197e7fb65ab60a2d1dd84f5cf073fb1e90ba by info
Offers: new standard defaults — no free pick, goods receipt by time, shelf L 5.50, service fee 99, DHL ≤ 1 kg 3.79, pallet 12.90; quote PDF and contract documents attached to the mail by default

QUOTE_LIST_PRICES (useOfferQuote.ts): qtyPickfree 1 → 0, monthlyFee 89.90 → 99 (also the < 1000 orders
volume-tier recommendations), shelfLargePrice 6.50 → 5.50 (floor lowered alike so the default no longer
warns), palletPrice 9.50 → 12.90, dhlTiers.kg1 3.49 → 3.79; inbound.mode default 'included' → 'hourly'.
confirmation.attachPdf (quote) and signing.attachDocuments (contract) default to true; saved conditions
with an explicit false are still respected on reopen.
The file was modifiedapp/composables/useOfferContract.ts (diff)
The file was modifiedapp/composables/useOfferQuote.ts (diff)
Commit a0ec3adad64debd862d0fc1b26c533f704506e54 by info
Fulfillment invoices: separate "Nachbelastung DHL Paket" position for shipping fees DHL invoiced after accounting

logship-scripts now writes shipping fee lines with fulfillmentpricingrule
SHIPPINGFEE_NACHBELASTUNG (surcharges / late DHL invoices for shipments whose
shipping fee was already accounted, dated with the detection date so the current
month's run picks them up). The generator gathers them per product like the
regular shipping fee but as their own order line "Nachbelastung DHL Paket
(Zuschläge lt. DHL-Rechnung): N Sendungen" in order lines, preview, response and
fee report; the preview details list each shipment with the DHL fee breakdown
from the fee line description. Labels in all four languages.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The file was modifiedapp/assets/langs/shared.js (diff)
The file was modifiedapp/components/fulfillment/FulfillmentGenerateOrdersModal.vue (diff)
The file was modifiedserver/api/fulfillment/generate-orders.post.ts (diff)