WIP: Aureplop/kpsul js refactor #501
2 changed files with 60 additions and 31 deletions
|
@ -38,7 +38,7 @@ function amountDisplay(amount, is_cof=false, tri='') {
|
|||
}
|
||||
|
||||
function amountToUKF(amount, is_cof=false) {
|
||||
var coef_cof = is_cof ? 1 + window.settings['subvention_cof'] / 100 : 1;
|
||||
var coef_cof = is_cof ? 1 + Config.getAll().subvention_cof / 100 : 1;
|
||||
return Math.round(amount * coef_cof * 10);
|
||||
}
|
||||
|
||||
|
|
|
@ -169,6 +169,50 @@
|
|||
{% csrf_token %}
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
function floatCheck(v) {
|
||||
if (typeof v === 'number')
|
||||
return v;
|
||||
return Number.parseFloat(v);
|
||||
}
|
||||
|
||||
class Config {
|
||||
|
||||
static getAll() {
|
||||
if (typeof window.config === 'undefined')
|
||||
window.config = {};
|
||||
return window.config;
|
||||
}
|
||||
|
||||
static reset(callback) {
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url : "{% url 'kfet.kpsul.get_settings' %}",
|
||||
method : "POST",
|
||||
})
|
||||
.done(function(data) {
|
||||
Config.addcost_for = data['addcost_for'];
|
||||
Config.addcost_amount = data['addcost_amount'];
|
||||
Config.subvention_cof = data['subvention_cof'];
|
||||
})
|
||||
.always(callback);
|
||||
}
|
||||
|
||||
static set addcost_for(v) {
|
||||
Config.getAll().addcost_for = v;
|
||||
}
|
||||
|
||||
static set addcost_amount(v) {
|
||||
Config.getAll().addcost_amount = floatCheck(v);
|
||||
}
|
||||
|
||||
static set subvention_cof(v) {
|
||||
Config.getAll().subvention_cof = floatCheck(v);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function() {
|
||||
'use strict';
|
||||
// -----
|
||||
|
@ -178,25 +222,6 @@ $(document).ready(function() {
|
|||
// Lock to avoid multiple requests
|
||||
var lock = 0;
|
||||
|
||||
// Retrieve settings
|
||||
|
||||
window.settings = {}
|
||||
|
||||
function resetSettings() {
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url : "{% url 'kfet.kpsul.get_settings' %}",
|
||||
method : "POST",
|
||||
})
|
||||
.done(function(data) {
|
||||
window.settings['addcost_for'] = data['addcost_for'];
|
||||
window.settings['addcost_amount'] = parseFloat(data['addcost_amount']);
|
||||
window.settings['subvention_cof'] = parseFloat(data['subvention_cof']);
|
||||
displayAddcost();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// -----
|
||||
// Account data management
|
||||
// -----
|
||||
|
@ -815,12 +840,13 @@ $(document).ready(function() {
|
|||
var arrowKeys = /^(37|38|39|40)$/;
|
||||
|
||||
function amountEuroPurchase(article_data, nb) {
|
||||
var cfg = Config.getAll();
|
||||
var amount_euro = - article_data[3] * nb ;
|
||||
if (settings['addcost_for'] && settings['addcost_amount'] && account_data['trigramme'] != settings['addcost_for'])
|
||||
amount_euro -= settings['addcost_amount'] * nb;
|
||||
if (cfg.addcost_for && cfg.addcost_amount && account_data['trigramme'] != cfg.addcost_for)
|
||||
amount_euro -= cfg.addcost_amount * nb;
|
||||
var reduc_divisor = 1;
|
||||
if (account_data['is_cof'])
|
||||
reduc_divisor = 1 + settings['subvention_cof'] / 100;
|
||||
reduc_divisor = 1 + cfg.subvention_cof / 100;
|
||||
return amount_euro / reduc_divisor;
|
||||
}
|
||||
|
||||
|
@ -1122,13 +1148,14 @@ $(document).ready(function() {
|
|||
var addcost_default_html = '<div id="addcost">Majoration vers <span class="addcost_for"></span> de <span class="addcost_amount"></span>€</div>';
|
||||
|
||||
function displayAddcost() {
|
||||
var cfg = Config.getAll();
|
||||
checkout_container.find('#addcost').remove();
|
||||
$('body').css('animation', 'none');
|
||||
if (settings['addcost_for'] && settings['addcost_amount']) {
|
||||
if (cfg.addcost_for && cfg.addcost_amount) {
|
||||
var addcost_html = $(addcost_default_html);
|
||||
addcost_html
|
||||
.find('.addcost_for').text(settings['addcost_for']).end()
|
||||
.find('.addcost_amount').text(settings['addcost_amount'].toFixed(2)).end();
|
||||
.find('.addcost_for').text(cfg.addcost_for).end()
|
||||
.find('.addcost_amount').text(cfg.addcost_amount.toFixed(2)).end();
|
||||
checkout_container.prepend(addcost_html);
|
||||
$('body').css('animation', 'colorchange 3s infinite');
|
||||
}
|
||||
|
@ -1258,8 +1285,8 @@ $(document).ready(function() {
|
|||
.text(article['stock']);
|
||||
}
|
||||
if (data['addcost']) {
|
||||
settings['addcost_for'] = data['addcost']['for'];
|
||||
settings['addcost_amount'] = parseFloat(data['addcost']['amount']);
|
||||
Config.addcost_for = data['addcost']['for'];
|
||||
Config.addcost_amount = data['addcost']['amount'];
|
||||
displayAddcost();
|
||||
}
|
||||
}
|
||||
|
@ -1285,9 +1312,11 @@ $(document).ready(function() {
|
|||
resetArticles();
|
||||
resetPreviousOp();
|
||||
khistory.reset();
|
||||
resetSettings();
|
||||
getArticles();
|
||||
getHistory();
|
||||
Config.reset(function() {
|
||||
displayAddcost();
|
||||
getArticles();
|
||||
getHistory();
|
||||
});
|
||||
}
|
||||
|
||||
function resetSelectable() {
|
||||
|
|
Loading…
Reference in a new issue