Search 1.9 billion lines of Odoo code on GitHub

scan_to_inventory

Author: GRAP
License: AGPL-3
Branch: 10.0
Repository: abakus-it/odoo-addons-mobile
Dependencies: base, and stock
Languages: CSS (6088, 18.5%), HTML (345, 1.1%), JSON (78, 0.2%), JavaScript (25964, 79.1%), Python (156, 0.5%), SVG (15, 0.0%), XML (59, 0.2%), and reStructuredText (115, 0.4%)
Other branches: 7.0, and 9.0

<img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.svg"> <a name="provide-light-web-app-to-scan-products-barcode-and-generate-stock-inventories"></a> <h2>Provide light Web app to scan products Barcode and generate Stock Inventories</h2> <p>This module was written to extend the functionality of odoo Stock module.</p> <p>This module provides a web app designed to work on a Mobile. The app allows user to scan products and select a quantity to inventory. A draft inventory is automatically created and updated.</p> <a name="interface"></a> <h3>Interface</h3> <a name="authentication"></a> <h4>Authentication</h4> <p>The first screen asks Odoo credentials. The user should be member of the Odoo 'Warehouse / User' group.</p> <img alt="/scan_to_inventory/static/src/img/01_phone_authentication.png" src="/scan_to_inventory/static/src/img/01_phone_authentication.png" /> <a name="data-loading"></a> <h4>Data Loading</h4> <p>Once authenticated, some datas are cached : Active Products, Stock locations and draft inventories.</p> <img alt="/scan_to_inventory/static/src/img/02_phone_data_loading.png" src="/scan_to_inventory/static/src/img/02_phone_data_loading.png" /> <a name="inventory-selection"></a> <h4>Inventory Selection</h4> <p>Once datas are loaded, user can select an existing draft stock inventory he want to complete.</p> <img alt="/scan_to_inventory/static/src/img/04_phone_select_stock_inventory.png" src="/scan_to_inventory/static/src/img/04_phone_select_stock_inventory.png" /> <p>Alternatively, user can create a new stock inventory, tipping an inventory name.</p> <a name="location-selection"></a> <h4>Location Selection</h4> <p>Once the inventory created (or selected), user has to select the location where he is for the time being.</p> <img alt="/scan_to_inventory/static/src/img/05_select_stock_location.png" src="/scan_to_inventory/static/src/img/05_select_stock_location.png" /> <a name="product-selection-and-quantity-selection"></a> <h4>Product Selection and Quantity Selection</h4> <p>Once the stock inventory is created or selected, the user can select a product, scanning a barcode.</p> <img alt="/scan_to_inventory/static/src/img/06_phone_select_product.png" src="/scan_to_inventory/static/src/img/06_phone_select_product.png" /> <p>If the EAN13 barcode is recognized, user has to set a quantity to inventory and then validate.</p> <img alt="/scan_to_inventory/static/src/img/07_phone_select_quantity.png" src="/scan_to_inventory/static/src/img/07_phone_select_quantity.png" /> <p>If a line with the same product (and same location) already exist, an extra screen is display to mention wich action to. (sum quantity, or replace the old value by the one).</p> <img alt="/scan_to_inventory/static/src/img/08_phone_duplicate_lines.png" src="/scan_to_inventory/static/src/img/08_phone_duplicate_lines.png" /> <a name="menu"></a> <h4>Menu</h4> <p>A menu is available in each screen that allows user to navigate between screens.</p> <img alt="/scan_to_inventory/static/src/img/03_phone_menu.png" src="/scan_to_inventory/static/src/img/03_phone_menu.png" /> <a name="extra-fields"></a> <h4>Extra Fields</h4> <p>In the company form, admin user can set extra fields that will be displayed when a product is scanned. A typical use case is to display stock quantity information.</p> <p>This feature is interesting to display easily and without custom developpement extra fields of the core, or custom extra fields.</p> <img alt="/scan_to_inventory/static/src/img/res_company_configuration.png" src="/scan_to_inventory/static/src/img/res_company_configuration.png" /> <img alt="/scan_to_inventory/static/src/img/07_phone_select_quantity_extra_data.png" src="/scan_to_inventory/static/src/img/07_phone_select_quantity_extra_data.png" /> <a name="technical-informations"></a> <h3>Technical Informations</h3> <a name="hardware"></a> <h4>Hardware</h4> <p>This module is designed to work with</p> <ul class="simple"> <li>a Browser running on a Mobile (Firefox Mobile / Chrome / ...)</li> <li>a Scan reader communicating with the mobile via Bluetooth (SPP settings)</li> </ul> <p><strong>Implementation Sample</strong></p> <ul class="simple"> <li>Mobile : <a class="reference external" href="http://www.samsung.com/fr/consumer/mobile-devices/smartphones/others/SM-G388FDSAXEF">Samsung Galaxy Xcover 3</a></li> <li>Browser : <a class="reference external" href="https://www.mozilla.org/en-US/firefox/os/">Firefox 46+</a></li> <li>Scan Reader : <a class="reference external" href="https://koamtac.com/kdc400-bluetooth-barcode-scanner/">KDC 400</a></li> </ul> <a name="used-technologies"></a> <h4>Used Technologies</h4> <p>This module uses extra JS / CSS components.</p> <ul class="simple"> <li><a class="reference external" href="https://angularjs.org/">Angular JS v1.x</a></li> <li><a class="reference external" href="https://angular-translate.github.io/">Angular Translate</a></li> <li><a class="reference external" href="http://ionicframework.com/">Ionic Framework</a></li> <li><a class="reference external" href="http://ionicons.com/">Ionic Icons</a> (MIT Licensed)</li> <li><a class="reference external" href="https://github.com/hparfr/angular-odoo">Angular Odoo</a>, light Javascript library developped by <a class="reference external" href="http://www.akretion.com/">Akretion</a> and <a class="reference external" href="http://www.camptocamp.org/">Camp To Camp</a></li> </ul> <a name="available-languages"></a> <h4>Available languages</h4> <ul class="simple"> <li>English</li> <li>French</li> </ul> <p>If you want to use other languages just copy past the french translation file in the 'static/www/i18n' sub folder and propose new translation.</p> <a name="similar-projects"></a> <h4>Similar Projects</h4> <ul class="simple"> <li>You could be interested by another implementation of similar features <a class="reference external" href="https://github.com/syleam/stock_scanner">'stock_scanner' on Github</a> developped by <a class="reference external" href="https://www.syleam.fr/">Syleam</a> and <a class="reference external" href="https://www.acsone.eu/">Acsone</a>.</li> </ul> <a name="installation"></a> <h3>Installation</h3> <p>Normal installation.</p> <p>Once installed, assuming that your Odoo instance is accessible by the URL http//localhost:8069/, the web app can be reached at the URL http//localhost:8069/scan_to_inventory/static/www/index.html</p> <a name="configuration"></a> <h3>Configuration</h3> <ul class="simple"> <li>Optionnaly, admin user can select extra fields to display. (see above)</li> <li>Language is displayed, depending on the languages provided by the browser.</li> </ul> <blockquote> <p>If you want to manually change it, you can to do so on firefox:</p> <blockquote> <ul class="simple"> <li>go to <a class="reference external" href="about:config">about:config</a></li> <li>Change the value of the key 'intl.accept_languages'</li> </ul> </blockquote> </blockquote> <a name="credits"></a> <h3>Credits</h3> <a name="contributors"></a> <h4>Contributors</h4> <ul class="simple"> <li>Sylvain LE GAL &lt;<a class="reference external" href="https://twitter.com/legalsylvain">https://twitter.com/legalsylvain</a>&gt;</li> </ul> <a name="roadmap-current-limits"></a> <h4>Roadmap / Current Limits</h4> <ul class="simple"> <li>Dates displays does NOT change depending of the localization of the user;</li> <li>JS and CSS lib are hard included. So if many apps are developped, it could be great to have a generic 'web_ionic' module that have all tools to avoid to duplicate files;</li> <li>Extra Fields Names are displayed only in english;</li> </ul> <a name="known-issues"></a> <h4>Known Issues</h4> <ul class="simple"> <li><strong>Firefox Ionic Bug</strong> : The first screen allows user to select database, in a multi database context. This module use ionic select component, that doesn't not works On Firefox Mobile. <a class="reference external" href="https://github.com/driftyco/ionic/issues/4767">See the bug on Ionic Github</a></li> <li><strong>Chrome Mobile limitation</strong> : This module plays mp3 sounds when actions is, done. This feature is not available for Chrome Mobile for the time being, cause Chrome consider that allowing to play a sound without explicit action of the user raises security issues. <a class="reference external" href="https://bugs.chromium.org/p/chromium/issues/detail?id=178297">See the bug on Chromium website</a></li> </ul>