{"product_id":"stock-movement-report-pro","title":"Stock Movement Report Pro","description":"\u003cdiv class=\"hero\"\u003e\n\u003ch1\u003eStock Movement Report Pro\u003c\/h1\u003e\n\u003cp\u003eThe stock movement ledger for Dolibarr: opening and closing balances product by product, balance at date, valuation, flows, signed period closing, reconciliation and Excel exports with live formulas\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003eFeatures\u003c\/h2\u003e\n\u003cdiv class=\"grid\"\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cb\u003eThe stock ledger, product by product\u003c\/b\u003e\u003cbr\u003eFor every product: the opening balance, each movement with its running balance, total receipts, total issues and the closing balance. The opening balance is the exact sum of every movement before the first day, so opening + receipts − issues = closing is checked and shown on every report.\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cb\u003eEvery filter you need\u003c\/b\u003e\u003cbr\u003eToday, this or last month, quarter, this or last year, 30 or 90 days, or free dates; warehouses with or without their sub-warehouses; product categories with or without sub-categories; products; lot or serial number. Group by product, product and warehouse, category or lot, and save the view as a report.\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cb\u003eAn Excel file that recalculates\u003c\/b\u003e\u003cbr\u003eThe running balance of each line is a formula, product totals are SUBTOTALs, the grand total a SUBTOTAL of the whole column, the closing a SUM of the ending balances. Change a quantity in the workbook and everything follows. Coloured product cards, frozen title rows, auto-filter. PDF and CSV too.\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cb\u003eBalance at any date, and its value\u003c\/b\u003e\u003cbr\u003eThe stock of every product and warehouse at any date, replayed from the movements, valued at the weighted average cost, the last purchase price before that date or the price of each movement, with the gap to today's level. Freeze it as a dated snapshot.\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cb\u003eFlows by family\u003c\/b\u003e\u003cbr\u003ePurchases, sales, production, transfers, inventories, returns, breakage: editable families and rules classify every movement the moment Dolibarr records it. A movement no rule recognises stays unclassified and listed — it is never forced into a family.\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cb\u003eClosed periods stay closed\u003c\/b\u003e\u003cbr\u003eMonthly periods signed by the storekeeper, the logistics manager, the controller or management; closing freezes the balance. A movement dated in a closed period and recorded afterwards is caught at once — or refused, if you choose — and must be reviewed: justified, corrected or accepted.\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cb\u003eThe ledger checked against Dolibarr\u003c\/b\u003e\u003cbr\u003eFor every product and warehouse, the sum of all movements is compared with the stock level Dolibarr keeps, and every gap gets its cause: level edited without a movement, stock with no movement behind it, deleted warehouse, rounding. Each gap is followed until corrected or accepted.\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cb\u003eThe life of every lot\u003c\/b\u003e\u003cbr\u003eWhere a lot came from, the warehouses it went through, where it left to, its balance after each movement, what is left and its use-by date; lots in stock sorted by expiry.\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cb\u003eAlerts that are raised once\u003c\/b\u003e\u003cbr\u003eEight kinds of rules: negative stock, receipt without price, large adjustment (transfers are recognised and left out), dormant stock, late recording, reconciliation gap, below the alert threshold, expired lot. An alert is raised once; an ignored alert does not come back; a justification on the movement resolves it.\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cb\u003eReports sent on time, honestly\u003c\/b\u003e\u003cbr\u003eA saved report e-mailed every day, week, month, quarter or month-end, as Excel, PDF or CSV. When e-mail is off — in the module or in Dolibarr — the delivery is queued and never counted as sent. Every export is kept and downloads again byte for byte.\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cb\u003eDashboard, 52 reports, REST API\u003c\/b\u003e\u003cbr\u003eNine watch tiles, stock level and value, the current month, twelve months of flows; 52 reports in eight families with chart, table and CSV; a Ledger button on Dolibarr's product and warehouse cards; warehouse groups; a 34-route REST API; five languages.\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cb\u003eA demo a stock controller would believe\u003c\/b\u003e\u003cbr\u003eOne click installs the stock of an industrial supplies distributor: 14 categories, a site with its sub-warehouses, 40 products, fourteen months of movements with lots used first-in first-out, transfers that always balance, production, inventories, returns and breakage — and only the gaps planted on purpose. One click removes exactly that, and nothing of yours.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c\/h2\u003e\n\u003ch2\u003eWhat the module does not do\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cb\u003eIt never changes Dolibarr's movements or stock levels.\u003c\/b\u003e\u003cspan\u003e \u003c\/span\u003eIt reads them; the only thing it may do to a movement is refuse it when it is dated in a closed period and you asked for that.\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003eIt does not correct gaps by itself.\u003c\/b\u003e\u003cspan\u003e \u003c\/span\u003eA reconciliation gap is explained and followed; the correction (a stock movement) remains a decision made in Dolibarr.\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003eValuation follows the cost Dolibarr keeps.\u003c\/b\u003e\u003cspan\u003e \u003c\/span\u003eWeighted average, last purchase price or movement price — no FIFO cost layers.\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003eLots are read from the movements.\u003c\/b\u003e\u003cspan\u003e \u003c\/span\u003eThe module does not create lots and does not replace Dolibarr's lot \/ serial module.\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003eE-mails go through Dolibarr's own mail settings.\u003c\/b\u003e\u003cspan\u003e \u003c\/span\u003eWith e-mail disabled, deliveries are queued, not sent.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003ePutting it to work\u003c\/h2\u003e\n\u003col\u003e\n\u003cli\u003eActivate the module: it creates its 27 tables, its data folders, its settings, 37 permissions and 7 scheduled jobs.\u003c\/li\u003e\n\u003cli\u003eGrant the permissions to your user groups.\u003c\/li\u003e\n\u003cli\u003eOptionally install the demo data from the module setup to discover it on a realistic stock.\u003c\/li\u003e\n\u003cli\u003eIn\u003cspan\u003e \u003c\/span\u003e\u003cb\u003eFlows\u003c\/b\u003e, review the families and rules, then click\u003cspan\u003e \u003c\/span\u003e\u003cb\u003eReclassify everything\u003c\/b\u003e\u003cspan\u003e \u003c\/span\u003eonce for your history.\u003c\/li\u003e\n\u003cli\u003eIn the\u003cspan\u003e \u003c\/span\u003e\u003cb\u003eLedger\u003c\/b\u003e, pick a period and a scope; save your favourite views as reports.\u003c\/li\u003e\n\u003cli\u003eIn\u003cspan\u003e \u003c\/span\u003e\u003cb\u003ePeriods\u003c\/b\u003e, create your monthly periods, have them signed and close them.\u003c\/li\u003e\n\u003cli\u003eEnable Dolibarr's\u003cspan\u003e \u003c\/span\u003e\u003cb\u003eScheduled jobs\u003c\/b\u003e\u003cspan\u003e \u003c\/span\u003emodule so classification, alerts, late entries, reconciliations, snapshots and deliveries run by themselves.\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003ch2\u003eTechnical summary\u003c\/h2\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cb\u003eModule number\u003c\/b\u003e\u003c\/td\u003e\n\u003ctd\u003e1740000\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cb\u003eDolibarr\u003c\/b\u003e\u003c\/td\u003e\n\u003ctd\u003e16 and later (tested on 17.0.3)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cb\u003ePHP\u003c\/b\u003e\u003c\/td\u003e\n\u003ctd\u003e7.1 and later (tested on 8.5)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cb\u003eTables\u003c\/b\u003e\u003c\/td\u003e\n\u003ctd\u003e27, prefix\u003cspan\u003e \u003c\/span\u003e\u003ccode\u003ellx_stockmovementreport_\u003c\/code\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cb\u003ePermissions\u003c\/b\u003e\u003c\/td\u003e\n\u003ctd\u003e37 in 15 groups\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cb\u003eMenu\u003c\/b\u003e\u003c\/td\u003e\n\u003ctd\u003e1 top entry, 50 left entries\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cb\u003eScheduled jobs\u003c\/b\u003e\u003c\/td\u003e\n\u003ctd\u003e7\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cb\u003eReports\u003c\/b\u003e\u003c\/td\u003e\n\u003ctd\u003e52 in 8 families\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cb\u003eREST API\u003c\/b\u003e\u003c\/td\u003e\n\u003ctd\u003e34 routes\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cb\u003eLanguages\u003c\/b\u003e\u003c\/td\u003e\n\u003ctd\u003eEnglish, French, German, Italian, Spanish\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cb\u003eExcel export\u003c\/b\u003e\u003c\/td\u003e\n\u003ctd\u003enative OOXML writer, live SUM \/ SUBTOTAL formulas\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cb\u003eTests\u003c\/b\u003e\u003c\/td\u003e\n\u003ctd\u003e1 186 checks, no failure\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cdiv class=\"sig\"\u003eDeveloped by DoliResource\u003cbr\u003eCopyright © DoliResource\u003cbr\u003eWebsite :\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/www.doliresource.com\"\u003ewww.doliresource.com\u003c\/a\u003e\n\u003c\/div\u003e","brand":"Dolibarr Resources","offers":[{"title":"Default Title","offer_id":54737842372926,"sku":null,"price":299.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0986\/4174\/0094\/files\/Logo_Access_Manager_Pro_24_Oct_2026_1.43_pm.png?v=1792845881","url":"https:\/\/doliresource.com\/products\/stock-movement-report-pro","provider":"DoliResource","version":"1.0","type":"link"}