Package org.bgerp.plugin.inventory.dao
Class MovementDAO
java.lang.Object
ru.bgcrm.dao.CommonDAO
org.bgerp.plugin.inventory.dao.MovementDAO
DAO for stock
Movement records and inventory_balance.
Movements are append-only — never updated or deleted.
Balance is maintained via INSERT ... ON DUPLICATE KEY UPDATE.-
Nested Class Summary
Nested classes/interfaces inherited from class ru.bgcrm.dao.CommonDAO
CommonDAO.ObjectExtractor<T>, CommonDAO.RecordUpdater<T extends Id> -
Field Summary
Fields inherited from class ru.bgcrm.dao.CommonDAO
con, log, 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 TypeMethodDescriptionvoidAppends a movement record and updates the balance accordingly.static MovementgetBalanceItems(Collection<Integer> storeIds) Returns balance data for given store IDs as a flat list of maps.getBalanceList(int storeId) Returns balance for a store as list of maps with keys: itemTitle, quantity, reserved.getById(long id) getListByProcess(int processId) getListByStore(int storeId, int limit) Methods inherited from class ru.bgcrm.dao.CommonDAO
deleteById, foundRows, getById, getGroupedIds, getGroupedIds, getIds, getIds, getPageLimit, getPeriodSql, lastInsertId, setPeriodParamValue, setRecordCount, update, updateColumn, updateIds, updateIds, updateOrInsert
-
Constructor Details
-
MovementDAO
-
-
Method Details
-
getById
- Throws:
SQLException
-
getListByStore
- Throws:
SQLException
-
getListByProcess
- Throws:
SQLException
-
append
Appends a movement record and updates the balance accordingly. For "reserve" adds to reserved; for "unreserve"/"writeoff"/"return" adjusts reserved/quantity.- Parameters:
m- movement to record- Throws:
IllegalStateException- if the operation would make balance negativeSQLException
-
getBalanceItems
Returns balance data for given store IDs as a flat list of maps. Each map has keys: storeId, itemId, quantity, reserved. Used for JS-driven balance hints in the process materials tab.- Throws:
SQLException
-
getBalanceList
Returns balance for a store as list of maps with keys: itemTitle, quantity, reserved. Ordered by item title. Only rows with quantity > 0 or reserved > 0.- Throws:
SQLException
-
fromRs
- Throws:
SQLException
-