Class MovementDAO
java.lang.Object
ru.bgcrm.dao.CommonDAO
org.bgerp.plugin.inventoru.dao.MovementDAO
-
Nested Class Summary
Nested classes/interfaces inherited from class CommonDAO
CommonDAO.ObjectExtractor<T>, CommonDAO.RecordUpdater<T> -
Field Summary
Fields inherited from class 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: itemId, itemTitle, itemTypeId, quantity, reserved.getById(long id) getListByProcess(int processId) getListByStore(int storeId, int limit) booleanisActiveReserve(long reserveId) Returns true if the given reserve movement is still active, i.e.voidtransfer(int fromStoreId, int toStoreId, int itemId, BigDecimal qty, int processId, int userId, String serialNumber, String comment) Moves quantity from one store to another as a linked pair of movements (append-only, same pattern as reserve/unreserve and writeoff/receipt-reversal): the source row (type=transfer) debits fromStoreId and records toStoreId in related_store_id, the destination row (type=transfer_in) credits toStoreId, records fromStoreId in related_store_id, and links back via ref_movement_id — so the movement list can show "→ Title"/"← Title" on each side and the two legs of any transfer can always be found from either one.Methods inherited from class 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
-
isActiveReserve
Returns true if the given reserve movement is still active, i.e. no unreserve/writeoff already references it via ref_movement_id. Used to reject a duplicate/stale unreserve request instead of silently recording a phantom cancellation on top of an already-settled reserve.- 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
-
transfer
public void transfer(int fromStoreId, int toStoreId, int itemId, BigDecimal qty, int processId, int userId, String serialNumber, String comment) throws SQLException Moves quantity from one store to another as a linked pair of movements (append-only, same pattern as reserve/unreserve and writeoff/receipt-reversal): the source row (type=transfer) debits fromStoreId and records toStoreId in related_store_id, the destination row (type=transfer_in) credits toStoreId, records fromStoreId in related_store_id, and links back via ref_movement_id — so the movement list can show "→ Title"/"← Title" on each side and the two legs of any transfer can always be found from either one. Caller is responsible for the available-quantity check and for committing.- Throws:
SQLException
-
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: itemId, itemTitle, itemTypeId, quantity, reserved. Ordered by item title. Only rows with quantity > 0 or reserved > 0. itemTypeId lets the caller split consumables from asset-kind items (see ItemTypeProperties) without a second query.- Throws:
SQLException
-
fromRs
- Throws:
SQLException
-