Improved stock management
This commit is contained in:
parent
2154c439df
commit
b46717d982
2 changed files with 46 additions and 23 deletions
|
@ -1,17 +1,20 @@
|
||||||
#dataList {
|
#dataList {
|
||||||
display: grid;
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
grid-template-columns: auto auto ;
|
grid-template-columns: auto auto ;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.img-container {
|
.img-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.grid-item {
|
.grid-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 5px;
|
margin: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,13 +28,19 @@
|
||||||
width: 100px;
|
width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.grid-container p {
|
.grid-container p, .grid-container h5 {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.grid-container h5 {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
.grid-container img {
|
.grid-container img {
|
||||||
width : 100px;
|
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
.button-container {
|
.button-container {
|
||||||
|
|
|
@ -2,31 +2,31 @@ let listContainer = $("#dataList");
|
||||||
let displayedItems = [];
|
let displayedItems = [];
|
||||||
let fetchedData = {};
|
let fetchedData = {};
|
||||||
|
|
||||||
let currentMode = "sell";
|
let currentMode = "buy";
|
||||||
|
|
||||||
let sellCLass = 'btn-danger';
|
let sellClass = 'btn-danger';
|
||||||
let buyClass = 'btn-success';
|
let buyClass = 'btn-success';
|
||||||
|
|
||||||
$(document).ready(async function () {
|
$(document).ready(async function () {
|
||||||
fetchedData = await AjaxManager.getAll();
|
await generateList();
|
||||||
|
|
||||||
|
$('#buyButton').addClass(buyClass);
|
||||||
|
$('#saveButton').addClass(buyClass);
|
||||||
|
|
||||||
$('#sellButton').addClass(sellCLass);
|
|
||||||
$('#saveButton').addClass(sellCLass);
|
|
||||||
|
|
||||||
generateList();
|
|
||||||
$('#buyButton').on('click', function () {
|
$('#buyButton').on('click', function () {
|
||||||
if (!$(this).hasClass(buyClass)) {
|
if (!$(this).hasClass(buyClass)) {
|
||||||
$(this).addClass(buyClass);
|
$(this).addClass(buyClass);
|
||||||
$('#sellButton').removeClass(sellCLass);
|
$('#sellButton').removeClass(sellClass);
|
||||||
$('#saveButton').removeClass(sellCLass).addClass(buyClass);
|
$('#saveButton').removeClass(sellClass).addClass(buyClass);
|
||||||
currentMode = "buy";
|
currentMode = "buy";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$('#sellButton').on('click', function () {
|
$('#sellButton').on('click', function () {
|
||||||
if (!$(this).hasClass(sellCLass)) {
|
if (!$(this).hasClass(sellClass)) {
|
||||||
$(this).addClass(sellCLass);
|
$(this).addClass(sellClass);
|
||||||
$('#buyButton').removeClass(buyClass);
|
$('#buyButton').removeClass(buyClass);
|
||||||
$('#saveButton').removeClass(buyClass).addClass(sellCLass);
|
$('#saveButton').removeClass(buyClass).addClass(sellClass);
|
||||||
currentMode = "sell";
|
currentMode = "sell";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -51,8 +51,9 @@ $(document).ready(async function () {
|
||||||
buttons: {
|
buttons: {
|
||||||
formSubmit: {
|
formSubmit: {
|
||||||
text: 'Confirmer',
|
text: 'Confirmer',
|
||||||
action: function () {
|
action: async function () {
|
||||||
window.location.reload();
|
await AjaxManager.saveStockChange(getFormattedValues(values), currentMode === "sell");
|
||||||
|
await generateList();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
cancel: {
|
cancel: {
|
||||||
|
@ -60,24 +61,37 @@ $(document).ready(async function () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
AjaxManager.saveStockChange(getFormattedValues(values), currentMode === "sell");
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function getListItem(item) {
|
function getListItem(item) {
|
||||||
|
const inputId = 'stockDiffInput' + item['id'];
|
||||||
|
const labelId = 'stockDiffLabel' + item['id'];
|
||||||
return (
|
return (
|
||||||
'<div class="grid-item">' +
|
'<div class="grid-item">' +
|
||||||
'<div class="grid-container">' +
|
'<div class="grid-container">' +
|
||||||
|
'<div class="img-container">' +
|
||||||
'<img class="list-image" src="../uploaded_images/' + item['id'] + '.jpg"/>' +
|
'<img class="list-image" src="../uploaded_images/' + item['id'] + '.jpg"/>' +
|
||||||
'<p>' + item['name'] + '</p>' +
|
'</div>' +
|
||||||
'<p>Quantité : ' + item['quantity'] + '</p>' +
|
'<h5>' + item['name'] + '</h5>' +
|
||||||
'<input placeholder="Nombre" type="number" value="0" class="form-control"/>' +
|
'<p>Quantité : <strong>' + item['quantity'] + '</strong></p>' +
|
||||||
|
'<label for="' + inputId + '" id="' + labelId + '">À Ajouter :</label>' +
|
||||||
|
'<input id="' + inputId + '" placeholder="Nombre" type="number" value="0" class="form-control" onchange="onStockDiffInputChange(this)"/>' +
|
||||||
'</div>' +
|
'</div>' +
|
||||||
'</div>');
|
'</div>');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function onStockDiffInputChange(input) {
|
||||||
|
if ($(input).val() < 0 || isNaN(parseInt($(input).val()))) {
|
||||||
|
$(input).val(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function generateList() {
|
|
||||||
|
async function generateList() {
|
||||||
|
fetchedData = await AjaxManager.getAll();
|
||||||
|
displayedItems = [];
|
||||||
|
listContainer.html('');
|
||||||
for (let i = 0; i < fetchedData['articles'].length; i++) {
|
for (let i = 0; i < fetchedData['articles'].length; i++) {
|
||||||
let listItem = getListItem(fetchedData['articles'][i]);
|
let listItem = getListItem(fetchedData['articles'][i]);
|
||||||
displayedItems.push($(listItem));
|
displayedItems.push($(listItem));
|
||||||
|
|
Loading…
Reference in a new issue