- Switched DB connection to FruitBank_PROD in appsettings.json
- Added NAV EKÁER credentials section to appsettings.json
- Introduced SendEkaerToNav SignalR endpoint for direct NAV submission
- Updated README to document new submission workflow and status handling
- Clarified EKÁER process and lifecycle to reflect automated NAV integration
Added IsProdEnvironment SignalR endpoint to FruitBankDataController for runtime environment checks. Set production status globally in PluginNopStartup via FruitBankConst.SetIsProd. Minor code and using updates. README.md binary updated.
Reordered LINQ method calls to filter ShippingDocuments by foreign keys before loading related PartnerDepot entities. This change ensures only relevant related data is loaded, improving query performance without altering logic.
- Switch to DEV DB and split company address street/number
- CustomerCreditWidget: isEkaer now nullable, defaults to true
- FruitBankDataController: add grid layout CRUD endpoints
- EKÁER: require depot for inbound, batch isEkaer for outbound
- Update docs: stricter foreign reporting, depot handling, isEkaer logic, mapping rules, and close depot-grouping issue
- Add OrderDraft (AI-assisted order intake) workflow: API, service, admin UI, and DB tables for draft creation, review, and approval into PreOrders.
- Implement customer attributes block: EKÁER flag, sites, license plates; add modals and AJAX endpoints for editing; auto-assign defaults to new orders.
- Extend order attributes (admin order page) for site/plate selection.
- Enhance PreOrder admin: inline editing, product swap, manual conversion, improved detail/list UI.
- Update localization (EN/HU) and documentation for new features.
- Register new services/routes; refactor PreOrder conversion and product swap logic.
- Improve customer and preorder UI/UX, including search and voice input.
Switched the connection string to the production database in appsettings.json. Enabled Mango.Nop.Services.Loggers.NopLogWriter as an additional logger. Removed an unused using directive from FruitBankDataController.cs.
Updated the connection string to use the FruitBank_DEV database.
Ensured EkaerHistory summary fields (ShippingDate, Partner/Customer)
are consistently set via fruitBankEkaerService.SetSummary when
creating or updating records, improving data consistency for both
inbound and outbound cases.
Refactored EKÁER logic to use EkaerHistoryMapping junction table, decoupling EkaerHistory from direct foreign keys. Grouped inbound declarations by (ShippingId, PartnerId, PartnerDepotId) and enabled atomic creation of histories with mappings. Updated controller endpoints, DI registration, and documentation. Improved error handling, logging, and adjusted method signatures for the new mapping-based approach.
- Switched appsettings.json connection string to FruitBank_DEV.
- FruitBankDataController: GetPartners now loads PartnerDepots; GetPartnerById uses new overload.
- Clarified in EKAER_TODO.md and README.md that carrierText is optional and left empty for outgoing shipments (customer is the carrier).
- Refactored CreateMissingEkaerHistories to return detailed results (created count + messages), improved grouping, obligation checks, and error handling for both inbound and outbound records.
- Updated AcBinaryHubProtocol to use Bytes mode and set FlushTimeout.
- Enhanced documentation: clarified tradeType and carrier mapping, explained threshold logic and reconciliation workflow, and warned about over-reporting risks.
- Minor code and comment cleanups for clarity.
Refactored GetEkaerHistories to use a new GetByFilter method in EkaerHistoryDbTable for SQL-compatible, flag-based filtering. Added GetEkaerHistoryCount endpoint and supporting CountByFilterAsync method. Improved status partitioning logic and clarified related comments.
Enhanced GetEkaerHistories to accept an EkaerHistoryFilter parameter and apply server-side filtering based on StatusId. Updated logging to include the filter value. The method now returns filtered results according to the selected filter (ToSubmit, Sent, NeedsCompletion, or all), instead of always returning all records.
- Added "Site" section to appsettings.json for company location.
- Increased EKAER threshold values; updated phone format.
- Refactored to use IEkaerSettings DI and registered in startup.
- GenerateEkaerXmlDocument now supports both incoming and outgoing (order) documents.
- Updated EKAER_TODO.md to reflect config and outgoing mapping changes.
- Switched DB connection to FruitBank_PROD in appsettings.json
- Added Ekaer config section: company info, thresholds, exchange rate
- Refactored CreateMissingEkaerHistories to use new settings, load related data, and apply exemption/threshold logic
- Updated controller DI to use EkaerSettings
- Centralized EKÁER config binding in PluginNopStartup
- Documented currency source issue and new value/category logic in EKAER_ISSUES.md and EKAER_TODO.md
Introduced CreateMissingEkaerHistories in FruitBankDataController to generate Pending EKÁER records for inbound shipping documents and completed outbound orders lacking such records from a specified date. The method is user-invoked, idempotent, logs actions and errors, and supports SignalR notifications.
Added IFruitBankEkaerService to FruitBankDataController and introduced two new SignalR methods: GenerateEkaerXmlDocument (generates/updates EkaerHistory for a shipping document) and CreateEkaerHistory (idempotently creates or returns EkaerHistory for a given key and direction). Both methods include detailed logging and entity validation.
- Added SignalR endpoints for EkaerHistory CRUD in FruitBankDataController.
- Introduced EkaerHistoryDbTable with ordering and query helpers.
- Registered EkaerHistoryDbTable in DI and DbContext.
- Updated appsettings.json to comment out NopLogWriter config with explanation.
Introduced PartnerDepotDbTable for managing PartnerDepot entities, registered it in DI, and integrated it into FruitBankDbContext. Updated NameCompatibility and PartnerDbTable for proper mapping and relation loading. Added SignalR controller endpoints for PartnerDepot CRUD and queries.
- Updated controllers and DbTables to support eager loading of CargoPartner and CargoTruck relations.
- Enhanced Shipping and ShippingDocument queries to include related transport entities.
- Extended SCHEMA.md with CargoPartner, CargoTruck, and updated Shipping schema details.
Comprehensively renamed all "Preorder" domain types, services, controllers, models, enums, database contexts, routes, views, JS, localization resources, and documentation to "PreOrder" (PascalCase, capital "O"). Updated all references in backend, frontend, localization, and schema docs for consistency. No business logic changes; this is a naming and normalization refactor.
- Introduced CargoPartnerDbTable and CargoTruckDbTable with DI registration.
- Extended FruitBankDbContext for new entities.
- Added CRUD SignalR endpoints for CargoPartner and CargoTruck.
- Renamed PartnerDbTable.GetByIdNameAsync to GetByNameAsync.
- Minor code style improvements.
Added AddPartner to FruitBankDataController, enabling partner creation via SignalR. The method logs the action, inserts the partner into the database, and returns the newly created partner, including ShippingDocuments if available.