Correction achat par lots

Positionnement de la quantité dans ItemData.data.quantite
This commit is contained in:
Vincent Vandemeulebrouck 2021-10-15 00:15:28 +02:00
parent dbc17e580c
commit ca39885eb9

View File

@ -3600,6 +3600,7 @@ export class RdDActor extends Actor {
const buttonAcheter = html.find(".button-acheter")[0]; const buttonAcheter = html.find(".button-acheter")[0];
const vente = DialogItemAchat.prepareVenteData(buttonAcheter, achat.vendeurId, vendeur, acheteur); const vente = DialogItemAchat.prepareVenteData(buttonAcheter, achat.vendeurId, vendeur, acheteur);
const itemId = vente.item._id; const itemId = vente.item._id;
const isItemEmpilable = "quantite" in vente.item.data;
const coutDeniers = Math.floor((achat.prixTotal ?? 0) * 100); const coutDeniers = Math.floor((achat.prixTotal ?? 0) * 100);
achat.quantiteTotal = (achat.choix.nombreLots ?? 1) * (vente.tailleLot); achat.quantiteTotal = (achat.choix.nombreLots ?? 1) * (vente.tailleLot);
@ -3612,7 +3613,7 @@ export class RdDActor extends Actor {
} }
const itemVendu = Misc.data(vendeur?.getObjet(itemId)); const itemVendu = Misc.data(vendeur?.getObjet(itemId));
if (itemVendu) { if (itemVendu) {
if ("quantite" in itemVendu.data ? itemVendu.data.quantite < achat.quantiteTotal : achat.choix.nombreLots != 1) { if (isItemEmpilable ? itemVendu.data.quantite < achat.quantiteTotal : achat.choix.nombreLots != 1) {
await acheteur?.ajouterDeniers(coutDeniers); await acheteur?.ajouterDeniers(coutDeniers);
ChatUtility.notifyUser(achat.userId, 'warn', `Le vendeur n'a plus assez de ${vente.item.name} !`); ChatUtility.notifyUser(achat.userId, 'warn', `Le vendeur n'a plus assez de ${vente.item.name} !`);
return; return;
@ -3631,10 +3632,9 @@ export class RdDActor extends Actor {
type: vente.item.type, type: vente.item.type,
img: vente.item.img, img: vente.item.img,
name: vente.item.name, name: vente.item.name,
data: vente.item.data, data: mergeObject(vente.item.data, {quantite: isItemEmpilable ? achat.quantiteTotal : undefined}),
quantite: "quantite" in vente.item ? achat.quantiteTotal : undefined
} }
let listeAchat = ("quantite" in vente.item) ? [achatData] : Array.from({length: achat.quantiteTotal}, (_, i) => achatData) let listeAchat = isItemEmpilable ? [achatData] : Array.from({length: achat.quantiteTotal}, (_, i) => achatData)
let items = await acheteur.createEmbeddedDocuments("Item", listeAchat) let items = await acheteur.createEmbeddedDocuments("Item", listeAchat)
if (achat.choix.consommer && vente.item.type == 'nourritureboisson') { if (achat.choix.consommer && vente.item.type == 'nourritureboisson') {
achat.choix.doses = achat.choix.nombreLots; achat.choix.doses = achat.choix.nombreLots;