Author: |
GRAP |
License: |
AGPL-3 |
Branch: |
7.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 (160, 0.5%),
SVG (15, 0.0%),
XML (59, 0.2%),
and
reStructuredText (115, 0.4%) |
Other branches: |
10.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 <<a class="reference external" href="https://twitter.com/legalsylvain">https://twitter.com/legalsylvain</a>></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>