Commit bc4f9ed4 by François C.

#1911 Explication calcul conso aide à la commande + maj lib js datatables

parent 38643bd9
Pipeline #1635 passed with stage
in 2 minutes 15 seconds
...@@ -224,6 +224,10 @@ ...@@ -224,6 +224,10 @@
margin-left: 5px; margin-left: 5px;
} }
.main.fa-info-circle {
color: #0275d8;
cursor: pointer;
}
.custom_cell_content { .custom_cell_content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
...@@ -392,6 +396,8 @@ ...@@ -392,6 +396,8 @@
padding: 15px; padding: 15px;
} }
/* - Miscellaneous */ /* - Miscellaneous */
footer { footer {
......
...@@ -1888,6 +1888,9 @@ function update_main_screen(params) { ...@@ -1888,6 +1888,9 @@ function update_main_screen(params) {
} }
} }
function display_average_consumption_explanation() {
openModal($('#explanations').html())
}
/** /**
* Update DOM display on the order selection screen * Update DOM display on the order selection screen
*/ */
...@@ -2260,6 +2263,8 @@ $(document).ready(function() { ...@@ -2260,6 +2263,8 @@ $(document).ready(function() {
return 0; return 0;
}); });
$(document).on("click",".fa-info-circle", display_average_consumption_explanation)
$.datepicker.regional['fr'] = { $.datepicker.regional['fr'] = {
monthNames: [ monthNames: [
'Janvier', 'Janvier',
......
from outils.common_imports import * from outils.common_imports import *
from outils.for_view_imports import * from outils.for_view_imports import *
from outils.common import OdooAPI
from orders.models import Order, Orders, CagetteSuppliers from orders.models import Order, Orders, CagetteSuppliers
from products.models import CagetteProduct, CagetteProducts from products.models import CagetteProduct, CagetteProducts
...@@ -20,7 +21,9 @@ def helper(request): ...@@ -20,7 +21,9 @@ def helper(request):
'couchdb_server': settings.COUCHDB['url'], 'couchdb_server': settings.COUCHDB['url'],
'db': settings.COUCHDB['dbs']['orders'], 'db': settings.COUCHDB['dbs']['orders'],
'odoo_server': settings.ODOO['url'], 'odoo_server': settings.ODOO['url'],
'metabase_url': getattr(settings, 'ORDERS_HELPER_METABASE_URL', '') 'metabase_url': getattr(settings, 'ORDERS_HELPER_METABASE_URL', ''),
'nb_past_days_to_compute_sales_average': OdooAPI().get_system_param('lacagette_products.nb_past_days_to_compute_sales_average'),
'nb_of_consecutive_non_sale_days_considered_as_break': OdooAPI().get_system_param('lacagette_products.nb_of_consecutive_non_sale_days_considered_as_break')
} }
template = loader.get_template('orders/helper.html') template = loader.get_template('orders/helper.html')
......
...@@ -74,6 +74,18 @@ class OdooAPI: ...@@ -74,6 +74,18 @@ class OdooAPI:
def authenticate(self, login, password): def authenticate(self, login, password):
return self.common.authenticate(self.db, login, password, {}) return self.common.authenticate(self.db, login, password, {})
def get_system_param(self, key):
value = ''
try:
res = self.search_read('ir.config_parameter',
[['key', '=', key]],
['value'])
if res:
value = res[0]['value']
except Exception as e:
coop_logger.error('get_system_param: (%s) %s', key, str(e))
return value
class CouchDB: class CouchDB:
"""Class to handle interactions with CouchDB""" """Class to handle interactions with CouchDB"""
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -256,6 +256,7 @@ class CagetteProduct(models.Model): ...@@ -256,6 +256,7 @@ class CagetteProduct(models.Model):
class CagetteProducts(models.Model): class CagetteProducts(models.Model):
"""Initially used to make massive barcode update.""" """Initially used to make massive barcode update."""
@staticmethod @staticmethod
def get_simple_list(): def get_simple_list():
res = [] res = []
......
<h2>Comment sont calculées les conso. moyennes par jour ?</h2>
<div style="text-align: justify;">
<p>
La fonction qui calcule les consommations moyennes prend en paramètre une date de départ. <br/>
Si elle n'est pas indiquée, la date prise en compte sera "<em>aujourd'hui - nb de jours paramétré dans Odoo</em>".<br/>
Ce nombre de jours paramétrable se trouve en suivant les menus suivants :<br>
Configuration > Technique > Paramètres > Paramètres systèmes. <br/>
La valeur est définie avec la clef "<em>lacagette_products.nb_past_days_to_compute_sales_average</em>".<br/>
Ce paramètre vaut <strong>{{nb_past_days_to_compute_sales_average}}</strong> au moment du chargement de cette page.<br/>
Les ventes du dimanche sont exclues du calcul.<br/>
</p>
<p>
Une requête est faite sur l'ensemble des passages en caisse, de la date de départ à hier, récupérant pour tous les jours de la période (dimanches exclus) les quantités vendues des articles achetés chez le fournisseur.<br/>
Pour chaque article, le nombre de jours considérés pour faire la moyenne est défini commme suit :<br/>
<em>Nb de jours ouvrés de la période - Nb de jours des périodes de rupture</em><br/>
Les périodes de ruptures sont caractérisées par un nombre de jours consécutifs assez important de jours sans vente de l'article.<br/>
Le nombre de jours consécutifs sans vente pour considérer l'article en rupture est actuellement de <strong>{{nb_of_consecutive_non_sale_days_considered_as_break}}</strong><br/>
(c'est le paramètre système avec la clef "<em>lacagette_products.nb_of_consecutive_non_sale_days_considered_as_break</em>").<br/>
</p>
<p>
Pour chaque article, la consommation moyenne par jour est obtenue en divisant la quantité totale vendue sur la période par le nombre de jours significatifs.
</p>
</div>
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
</form> </form>
<form action="javascript:;" id="coverage_form" class="order_form_item"> <form action="javascript:;" id="coverage_form" class="order_form_item">
<input type="number" name="coverage_days" id="coverage_days_input" placeholder="Nb jours de couverture" min="1"> <input type="number" name="coverage_days" id="coverage_days_input" placeholder="Nb jours de couverture" min="1">
<button type="submit" class='btn--primary'>Calculer les besoins</button> <button type="submit" class='btn--primary'>Calculer les besoins</button> <i class='main fa fa-info-circle fa-lg'></i>
</form> </form>
</div> </div>
...@@ -294,7 +294,9 @@ ...@@ -294,7 +294,9 @@
<br/> <br/>
<hr/> <hr/>
</div> </div>
<div id="explanations">
{% include "orders/explanations.html" %}
</div>
<div id="modal_create_order__supplier_date_planned"> <div id="modal_create_order__supplier_date_planned">
<div class="modal_input_area"> <div class="modal_input_area">
<span class="modal_input_label supplier_name"></span> <span class="modal_input_label supplier_name"></span>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment