Class ExportService
java.lang.Object
ru.bgcrm.dao.CommonDAO
org.bgerp.plugin.inventory.sync1c.service.ExportService
Service for managing the export queue and sending write-offs to 1C.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordResult of a singlesendExportQueue(ExportQueue)attempt — carries the item count alongside the error so callers can log it (see inventory_sync1c_export_log) without a secondbuildWriteoffItems(int, Sync1cConnector)lookup.Nested classes/interfaces inherited from class CommonDAO
CommonDAO.ObjectExtractor<T>, CommonDAO.RecordUpdater<T> -
Field Summary
Fields inherited from class CommonDAO
con, SQL_AND, SQL_DELETE, SQL_DELETE_FROM, SQL_DESC, SQL_DISTINCT, SQL_FROM, SQL_GROUP_BY, SQL_INNER_JOIN, SQL_INSERT_IGNORE_INTO, SQL_INSERT_INTO, SQL_LEFT_JOIN, SQL_LIMIT, SQL_ON_DUP_KEY_UPDATE, SQL_ORDER_BY, SQL_REPLACE, SQL_SELECT, SQL_SELECT_ALL_FROM, SQL_SELECT_COUNT_ROWS, SQL_SET, SQL_UNION_ALL, SQL_UPDATE, SQL_VALUES, SQL_VALUES_1, SQL_VALUES_2, SQL_VALUES_3, SQL_VALUES_4, SQL_VALUES_5, SQL_WHERE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuildWriteoffItems(int processId, Sync1cConnector instance) Resolves the write-off items (product_id + quantity) for a process's active reserves, protocol-agnostic — used both by the HS sender (sendExportQueue(ExportQueue)) and by the File-protocol CSV export.voidcreateWriteoffMovements(int processId) Creates writeoff movements in ERP for all active reserves of the process.voidenqueue(int processId) Enqueues a write-off export for the given process.voidreverseWriteoffMovements(int processId) Reverses a previously exported write-off: returns the written-off quantity back to the engineer's store as plain stock (does not re-reserve — the process restarted from scratch, the engineer reserves again if/when they redo the work).Sends a queued write-off export to 1C over the HS protocol.Methods inherited from class CommonDAO
deleteById, foundRows, getById, getGroupedIds, getGroupedIds, getIds, getIds, getPageLimit, getPeriodSql, lastInsertId, setPeriodParamValue, setRecordCount, update, updateColumn, updateIds, updateIds, updateOrInsert
-
Constructor Details
-
ExportService
-
-
Method Details
-
enqueue
Enqueues a write-off export for the given process. For each reserve movement in the process, looks up the engineer warehouse by store_id and adds an entry to the export queue. Duplicate (process_id, instance_id) entries are silently ignored. Does NOT commit — caller is responsible.- Throws:
SQLException
-
sendExportQueue
Sends a queued write-off export to 1C over the HS protocol.- Parameters:
q- the queue entry to process- Throws:
SQLException
-
buildWriteoffItems
public List<Api1cClient.WriteoffItem> buildWriteoffItems(int processId, Sync1cConnector instance) throws SQLException Resolves the write-off items (product_id + quantity) for a process's active reserves, protocol-agnostic — used both by the HS sender (sendExportQueue(ExportQueue)) and by the File-protocol CSV export.- Throws:
SQLException
-
createWriteoffMovements
Creates writeoff movements in ERP for all active reserves of the process. Called after successful export to 1C so the ERP balance reflects the physical write-off. Updates both quantity and reserved via the "writeoff" balance rule. Does NOT commit — caller is responsible.- Parameters:
processId- the process whose reserves were written off- Throws:
SQLException
-
reverseWriteoffMovements
Reverses a previously exported write-off: returns the written-off quantity back to the engineer's store as plain stock (does not re-reserve — the process restarted from scratch, the engineer reserves again if/when they redo the work). Uses "receipt" so only quantity changes, not reserved — a "return" movement would incorrectly touch reserved balance shared with other processes on the same item/store. No negative-balance guard: 1C-side reconciliation of the physical write-off is out of ERP's scope once the process owner decided to reopen the process. Marks the export queue entries as reversed so materials editing unlocks. Does NOT commit — caller is responsible.- Parameters:
processId- the process whose write-off is being reversed- Throws:
SQLException
-