Fix: gestion de la fenêtre de vente
les nombre de lots ne marchaient plus (toujourts 1 de proposé)
This commit is contained in:
parent
083806612b
commit
61474172a7
@ -8,7 +8,7 @@ export class DialogItemVente extends Dialog {
|
|||||||
const venteData = {
|
const venteData = {
|
||||||
item: item,
|
item: item,
|
||||||
alias: item.actor?.name ?? game.user.name,
|
alias: item.actor?.name ?? game.user.name,
|
||||||
vendeurId: item.actor?.id ,
|
vendeurId: item.actor?.id,
|
||||||
prixOrigine: item.calculerPrixCommercant(),
|
prixOrigine: item.calculerPrixCommercant(),
|
||||||
prixUnitaire: item.calculerPrixCommercant(),
|
prixUnitaire: item.calculerPrixCommercant(),
|
||||||
prixLot: item.calculerPrixCommercant(),
|
prixLot: item.calculerPrixCommercant(),
|
||||||
@ -40,51 +40,62 @@ export class DialogItemVente extends Dialog {
|
|||||||
|
|
||||||
activateListeners(html) {
|
activateListeners(html) {
|
||||||
super.activateListeners(html);
|
super.activateListeners(html);
|
||||||
|
|
||||||
this.html = html;
|
this.html = html;
|
||||||
this.setQuantiteIllimite(this.venteData.quantiteIllimite);
|
|
||||||
this.html.find(".tailleLot").change(event => this.setTailleLot(Number(event.currentTarget.value)));
|
this.html.find(".tailleLot").change(event => this.setTailleLot(Number(event.currentTarget.value)));
|
||||||
this.html.find(".quantiteNbLots").change(event => this.setNbLots(Number(event.currentTarget.value)));
|
this.html.find(".quantiteNbLots").change(event => this.setNbLots(Number(event.currentTarget.value)));
|
||||||
this.html.find(".quantiteIllimite").change(event => this.setQuantiteIllimite(event.currentTarget.checked));
|
this.html.find(".quantiteIllimite").change(event => this.setQuantiteIllimite(event.currentTarget.checked));
|
||||||
this.html.find(".prixLot").change(event => this.setPrixLot(Number(event.currentTarget.value)));
|
this.html.find(".prixLot").change(event => this.setPrixLot(Number(event.currentTarget.value)));
|
||||||
|
|
||||||
|
this.setQuantiteIllimite(this.venteData.quantiteIllimite);
|
||||||
}
|
}
|
||||||
|
|
||||||
async onProposer(it) {
|
async onProposer(it) {
|
||||||
await this.html.find(".tailleLot").change();
|
this.updateVente(this.getChoixVente());
|
||||||
await this.html.find(".quantiteNbLots").change();
|
|
||||||
await this.html.find(".quantiteIllimite").change();
|
|
||||||
await this.html.find(".prixLot").change();
|
|
||||||
this.callback(this.venteData);
|
this.callback(this.venteData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateVente(update) {
|
||||||
|
mergeObject(this.venteData, update);
|
||||||
|
}
|
||||||
|
|
||||||
|
getChoixVente() {
|
||||||
|
return {
|
||||||
|
quantiteNbLots: Number(this.html.find(".quantiteNbLots").val()),
|
||||||
|
tailleLot: Number(this.html.find(".tailleLot").val()),
|
||||||
|
quantiteIllimite: this.html.find(".quantiteIllimite").is(':checked'),
|
||||||
|
prixLot: Number(this.html.find(".prixLot").val())
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
setPrixLot(prixLot) {
|
setPrixLot(prixLot) {
|
||||||
this.venteData.prixLot = prixLot;
|
this.venteData.prixLot = prixLot;
|
||||||
}
|
}
|
||||||
|
|
||||||
setTailleLot(tailleLot) {
|
setTailleLot(tailleLot) {
|
||||||
// recalculer le prix du lot
|
const maxLots = Math.floor(this.venteData.quantiteMax / tailleLot);
|
||||||
if (tailleLot != this.venteData.tailleLot) {
|
this.updateVente({
|
||||||
this.venteData.prixLot = (tailleLot * this.venteData.prixOrigine).toFixed(2);
|
tailleLot,
|
||||||
|
quantiteNbLots: Math.min(maxLots, this.venteData.quantiteNbLots),
|
||||||
|
quantiteMaxLots: maxLots,
|
||||||
|
prixLot: (tailleLot * this.venteData.prixOrigine).toFixed(2)
|
||||||
|
});
|
||||||
|
|
||||||
this.html.find(".prixLot").val(this.venteData.prixLot);
|
this.html.find(".prixLot").val(this.venteData.prixLot);
|
||||||
}
|
|
||||||
this.venteData.tailleLot = tailleLot;
|
|
||||||
// recalculer le nombre de lots max
|
|
||||||
this.venteData.quantiteMaxLots = Math.floor(this.venteData.quantiteMax / tailleLot);
|
|
||||||
this.venteData.quantiteNbLots = Math.min(this.venteData.quantiteMaxLots, this.venteData.quantiteNbLots);
|
|
||||||
this.html.find(".quantiteNbLots").val(this.venteData.quantiteNbLots);
|
this.html.find(".quantiteNbLots").val(this.venteData.quantiteNbLots);
|
||||||
this.html.find(".quantiteNbLots").attr("max", this.venteData.quantiteMaxLots)
|
this.html.find(".quantiteNbLots").attr("max", this.venteData.quantiteMaxLots)
|
||||||
}
|
}
|
||||||
|
|
||||||
setNbLots(nbLots) {
|
setNbLots(nbLots) {
|
||||||
if (this.venteData.isOwned) {
|
this.updateVente({
|
||||||
nbLots = Math.max(0, Math.min(nbLots, this.venteData.quantiteMaxLots));
|
quantiteNbLots: this.venteData.isOwned ? Math.max(0, Math.min(nbLots, this.venteData.quantiteMaxLots)) : nbLots
|
||||||
}
|
})
|
||||||
this.venteData.quantiteNbLots = nbLots;
|
|
||||||
this.html.find(".quantiteNbLots").val(this.venteData.quantiteNbLots);
|
this.html.find(".quantiteNbLots").val(this.venteData.quantiteNbLots);
|
||||||
}
|
}
|
||||||
|
|
||||||
setQuantiteIllimite(checked) {
|
setQuantiteIllimite(checked) {
|
||||||
this.venteData.quantiteIllimite = checked;
|
this.updateVente({ quantiteIllimite: checked })
|
||||||
this.html.find(".label-quantiteIllimite").text(this.venteData.quantiteIllimite ? "Illimités" : "disponibles");
|
this.html.find(".label-quantiteIllimite").text(this.venteData.quantiteIllimite ? "Illimités" : "disponibles");
|
||||||
HtmlUtility.showControlWhen(this.html.find(".quantiteNbLots"), !this.venteData.quantiteIllimite)
|
HtmlUtility.showControlWhen(this.html.find(".quantiteNbLots"), !this.venteData.quantiteIllimite)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user