Skip to content
Success

#737 (Sep 15, 2026, 2:00:00 AM)

Started 4 days 14 hr ago
Took 1 min 11 sec on built-in

Started by timer

Revision: 7ccda3abf09f752e54f2ad7299b242330511d169
Repository: https://github.com/younex1/erp-nuxt-frontend.git
  • refs/remotes/origin/dev
Changes
  1. Dial popover: show the PBX extension name instead of the state text — server/utils/telephony/extensions.ts reads each extension's FreePBX display name from the astdb (AMI DBGet AMPUSER/<ext>/cidname, covered by the reporting class already granted to the logship manager user; cached 10 min per extension, fetched on the same socket as DeviceStateList, ERP user name stays the fallback), DialButton rows now read '401 Younes' with the state carried by the coloured dot + hover tooltip only, DirectoryExtension type gains pbxName (details / githubweb)
  2. Bank fetch page: /accounting/bank-transactions becomes the dedicated "Bankabruf" page (fetch from the bank), replacing the duplicate staged-statements/import tables — coverage table per connection (data from/to, counts, last fetch, 12-month strip green = staged / red = never fetched, click = preselect), backfill runner for past periods (months from a coverage-aware grid with "Select missing", everything since a date, free range, single day; chunks of max 31 days so PayPal's 30-day window and the proxy timeout are respected; sequential per connection + chunk, progress bar, per-chunk log, abort, retry failed, details via the fetch-result modal, dry-run toggle, hand-off to Banking → import), connection cards kept in a collapsible section; new proxy route bank-transactions/coverage.get.ts (Laravel banking/statements/coverage, fail-soft notice when not deployed); shared bk-* styles moved from the Banking page into app/assets/css/banking.css (loaded by both pages); Banking fetch modal links to the backfill page; menu labels "Bankabruf"/"Bank Fetch"; bankfetch_* translations en/de/es (details / githubweb)
  3. Dashboard calls card: '+' on unmatched numbers → quick-create contact modal — new components/dashboard/QuickContactModal.vue (teleported; name required + autofocused, phone preset from the call row incl. PBX caller-id name, optional e-mail and 'als Lead anlegen' flag; creates a plain ad_user via /api/admin/users/store, not a system user, current org); RecentCallsCard remembers checked-but-unmatched numbers (null entries) so the '+' only shows after the ES match finished, and stores the created user as the number's contact locally so the row flips to the contact menu without waiting for the ad_user index sync; rcc_add_contact/qcm_* translations en/de/es (details / githubweb)
  4. DPD labels: carry address2 (Adresszusatz) like DHL — dpd/index + dpd/multi now map body.address2 into the recipient: name2 when no company/c/o is set, otherwise the company keeps name2 and address2 goes to contact (the only other printed DPD line, 35 chars), plus a data-only comment mirror (70); <contact> emitted after <city> and <comment> after <email> per the DPD XSD order. DHL index/multi cap consignee name2/name3 at 50 chars so over-long values are truncated instead of rejected. Frontend unchanged (commission.vue already sends both fields to both carriers). (details / githubweb)
  5. Call recordings: async whisper transcription — transcribe.post.ts starts the job, waits max 20 s and answers 202 pending for anything longer (the edge nginx cuts requests at 60 s, long calls used to 504 while whisper kept running); new transcribe-status.get.ts polls the disk state (pending marker <file>.pending.json shared across PM2 instances, cache file = done, marker error = failed); shared statusResponse() in transcriptionResponse.ts; CallRecordingsModal polls every 3 s up to 25 min and shows the elapsed time (details / githubweb)
  6. Roadsurfer price sheet: update workbook, drop stray Excel lock file (details / githubweb)
  7. Amazon Ads invoices → Eingangsrechnungen: new page /accounting/amazon-ads-invoices lists Sponsored-Ads invoices (Amazon Ads API when connected — LWA consent flow, profile picker, GET /invoices + /invoices/{id} + /billing/documents PDF — or console PDFs dropped on the page and parsed server-side), lets the user tick which ones to import and books each as a completed AP invoice on the fixed vendor 1043801 (org *): one charge line per campaign (default charge Werbekosten), tax by rate so GrandTotal = Amazon gross, DocumentNo/POReference = Amazon invoice no., duplicate guard, original Amazon PDF attached under PO_Invoice; Storno action voids + renames the number (<no>-VOID-<id>) so the same invoice can be re-imported; booked/Lexoffice status comes from iDempiere (vendor AP invoices matched by number). Lexoffice upload: purchase invoices now upload the attached vendor original instead of the Jasper print (no ZUGFeRD on foreign documents) and requireOriginal:true skips invoices without one (used by the Ads page). Store data/amazon-ads.db + PDF cache data/amazon-ads/ (git-ignored); AMAZON_ADS_* env keys (empty = PDF-upload mode until the Ads API approval exists); AgGrid wrapper registers RowGroupingPanelModule (error #200 on every grid page); menu + en/de/es labels; parser dev script reference/test-scripts/amazon-ads-parse.mjs + sample invoice (details / githubweb)
  8. Sales order ship-to name + dashboard calls card improvements (details / githubweb)
  9. Sales invoices: merge in purchase (AP) invoices, incl. Amazon Ads imports (details / githubweb)
  10. Lead page: move Aufnahmen button out of the offer/contract CTA group (details / githubweb)
  11. DialButton: opt-in Recordings toggle (play-only) in the dial popover (details / githubweb)
  12. Recent calls card: stack date above number, give the name its own full line (details / githubweb)
  13. Locator priorities: exclude locators not allowed for shipping (details / githubweb)
  14. DialButton: fix recordings that appeared to play but stayed silent (details / githubweb)
  15. AgInvoiceKind: fix AP/AR tags never actually getting their colors (details / githubweb)
  16. Lexoffice upload: default AP invoices into Ausgaben, not the general inbox (details / githubweb)
  17. Bank fetch coverage: show import progress per month, not just staged (details / githubweb)
  18. Add asterisk lookup endpoint (details / githubweb)
  19. Quote: configurable grading pricing (time/fixed + description) and save-draft button (details / githubweb)
  20. Quote: customer-requirements checklist; dashboard: leads card quick actions (details / githubweb)
  21. Amazon: switch central OAuth app to Published, fix test-connection + credential UI (details / githubweb)
  22. SIS: new Amazon pricing control page — compare internal vs Amazon price/qty, Buy Box, fees, push corrected prices (details / githubweb)