MfWhitelistApiClient.lookupByNip() exposes is_jdg/krs from MF Biala Lista.
InvoiceController.nipLookup propagates is_jdg in JSON response.
invoice_form.php JS conditionally targets buyer_name (JDG) or
buyer_company_name (spolka z KRS); second field keeps zamowienie pre-fill.
Fixes apparent field swap on /orders/{id}/invoice/create after GUS lookup
for JDG (sole trader) where MF returns natural person in subject.name.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.6 KiB
4.6 KiB
2026-05-13
Co zrobiono
- [Phase 124, Plan 01] Wdrozono szablony SMS: CRUD w
/settings/sms-templates(name + body + is_active) plus dropdown "Wybierz szablon" w zakladce SMS na/orders/{id}wstawiajacy tresc z rozwinietymi zmiennymi{{zamowienie.numer}},{{kupujacy.imie_nazwisko}},{{przesylka.numer}}itd. do textarea. - [Phase 124, Plan 01] Wydzielono
Sms\SmsVariableResolverze wspolna logikabuildVariableMap+resolve;Email\VariableResolverzostal cienka fasada delegujaca —EmailSendingServiceniezmieniony, kontrakt Phase 14 zachowany. - [Phase 124, Plan 01] Dodano endpoint
GET /orders/{id}/sms/template?template_id=N(JSON z rozwinietym body per zamowienie); JS modulesms-template-picker.jsz idempotentnym guard iOrderProAlerts.confirm(options-object API) przy nadpisaniu niepustej textarea. - [Phase 124, Plan 01] Migracja
20260512_000112_create_sms_templates.sql(CREATE TABLE, DDL). Stopka SMSPLANET dalej doklejana wylacznie przezSmsConversationService::buildFinalOutboundBody()(Phase 122 contract preserved). - [Phase 124, Plan 01] UI fixes po UAT operatora: paleta zmiennych przeniesiona pod textarea z pill chipami
{{var}} + opis(border-radius 999px, hover indigo); akcje w liscie szablonow uzywajadisplay: flex; flex-wrap: nowrapzamiastwhite-space: nowrap(form-children byly blokowe). - [Phase 124, Plan 01] UNIFY zamkniety;
php bin/migrate.phpi real smoke wysylki SMS z szablonu zalezne od XAMPP MySQL online. - [Phase 125, Plan 01] Bugfix #1089: shopPRO order z
firm_nipustawia terazinvoice_requested=1przy imporcie (mapper jako jedyne zrodlo heurystyki, sync service propagujeaggregate['invoice_detected']). - [Phase 125, Plan 01] Allegro rozszerzenie
shouldRequestInvoice(): detekcjainvoice.naturalPerson=false,invoice.address.taxId,invoice.companyName(wczesniej tylkoinvoice.required). - [Phase 125, Plan 01] Migracja
20260513_000113_drop_orders_is_invoice_and_backfill_invoice_requested.sql— idempotentna (information_schema guard); backfill 7 zamowien + DROP COLUMNorders.is_invoice(legacy z Phase 115). - [Phase 125, Plan 01] Cleanup
is_invoicezOrderImportRepository(INSERT/params/docstring) iOrdersRepository(SELECT/hydrate); usunieteshouldRequestInvoice()zShopproOrdersSyncService(zastapione heurystyka mappera). - [Phase 126, Plan 01] Bugfix
/orders/{id}/invoice/createGUS lookup: dla JDG (MFsubject.krs='') nazwa z MF trafia do "Imie i nazwisko"; dla spolki z KRS — do "Nazwa firmy". Drugiego pola nie nadpisuje — pre-fill zorder_addresses.namezachowany (czesto trzyma pelna nazwe firmy JDG, np. "Project-Pro Pyziak Jacek" vs MF "JACEK PYZIAK"). - [Phase 126, Plan 01]
MfWhitelistApiClient::lookupByNip()zwraca dodatkowokrs: stringiis_jdg: bool(true gdysubject.krs === '').InvoiceController::nipLookuppropagujeis_jdgwdataJSON. JSbtn-gus-lookupwarunkowo wybiera target field.
Zmienione pliki
database/migrations/20260512_000112_create_sms_templates.sqlsrc/Modules/Sms/SmsTemplateRepository.phpsrc/Modules/Sms/SmsVariableResolver.phpsrc/Modules/Email/VariableResolver.phpsrc/Modules/Settings/SmsTemplateController.phpsrc/Modules/Orders/OrdersController.phproutes/web.phpresources/views/settings/sms-templates.phpresources/views/settings/sms-templates-form.phpresources/views/orders/show.phpresources/views/layouts/app.phpresources/lang/pl.phpresources/scss/app.scssresources/scss/modules/_sms-templates.scsspublic/assets/css/app.csspublic/assets/js/modules/sms-template-picker.js.paul/codebase/db_schema.md.paul/codebase/architecture.md.paul/codebase/tech_changelog.md.paul/PROJECT.md.paul/ROADMAP.md.paul/STATE.md.paul/phases/124-sms-templates/124-01-PLAN.md.paul/phases/124-sms-templates/124-01-SUMMARY.mdsrc/Modules/Settings/ShopproOrderMapper.phpsrc/Modules/Settings/ShopproOrdersSyncService.phpsrc/Modules/Settings/AllegroOrderImportService.phpsrc/Modules/Orders/OrderImportRepository.phpsrc/Modules/Orders/OrdersRepository.phpdatabase/migrations/20260513_000113_drop_orders_is_invoice_and_backfill_invoice_requested.sql.paul/phases/125-invoice-requested-import-fix/125-01-PLAN.md.paul/phases/125-invoice-requested-import-fix/125-01-SUMMARY.mdsrc/Core/Http/MfWhitelistApiClient.phpsrc/Modules/Accounting/InvoiceController.phpresources/views/accounting/invoice_form.php.paul/phases/126-invoice-gus-field-mapping/126-01-PLAN.md.paul/phases/126-invoice-gus-field-mapping/126-01-SUMMARY.md