Fix: vente de service avec quantité

This commit is contained in:
Vincent Vandemeulebrouck 2022-12-30 02:28:17 +01:00
parent 84f4a152a8
commit 2546b89b44
4 changed files with 8 additions and 6 deletions

View File

@ -3776,7 +3776,7 @@ export class RdDActor extends Actor {
const vente = achat.vente;
const quantite = (achat.choix.nombreLots ?? 1) * (vente.tailleLot);
const itemVendu = vendeur?.getObjet(vente.item._id) ?? (await RdDItem.getCorrespondingItem(vente.item));
if (!this.verifierQuantite(service, vendeur, itemVendu, quantite)) {
if (!this.verifierQuantite(service, vente.serviceSubItem, vendeur, itemVendu, quantite)) {
ChatUtility.notifyUser(achat.userId, 'warn', `Le vendeur n'a pas assez de ${itemVendu.name} !`);
return
}
@ -3828,8 +3828,8 @@ export class RdDActor extends Actor {
}
}
verifierQuantite(service, vendeur, item, quantiteTotal) {
const disponible = service ? service.getQuantiteDisponible(item, quantiteTotal) : (vendeur ? (item?.getQuantite() ?? 0) : quantiteTotal);
verifierQuantite(service, serviceSubItem, vendeur, item, quantiteTotal) {
const disponible = service ? service.getQuantiteDisponible(serviceSubItem, quantiteTotal) : (vendeur ? (item?.getQuantite() ?? 0) : quantiteTotal);
return disponible >= quantiteTotal;
}

View File

@ -30,13 +30,14 @@ export class DialogItemAchat extends Dialog {
}
static async onAcheter({ item, vendeur, acheteur, service, tailleLot, prixLot, nbLots, quantiteIllimite, chatMessageIdVente }) {
static async onAcheter({ item, vendeur, acheteur, service, serviceSubItem, tailleLot, prixLot, nbLots, quantiteIllimite, chatMessageIdVente }) {
const venteData = {
item,
actingUserId: game.user.id,
vendeurId: vendeur?.id,
vendeur,
acheteur,
serviceSubItem: serviceSubItem,
service,
tailleLot,
quantiteIllimite,

View File

@ -23,7 +23,7 @@ export class RdDItemService extends RdDItem {
getProprietes() { return []; }
getServiceItem(itemRef) {
if (this.isService()) {
if (itemRef && this.isService()) {
return this.system.items.find(it => it.id == itemRef.id && it.pack == itemRef.pack);
}
return undefined;
@ -64,6 +64,7 @@ export class RdDItemService extends RdDItem {
await DialogItemAchat.onAcheter({
item: await RdDItem.getCorrespondingItem(subItem),
acheteur,
serviceSubItem: subItem,
service: this,
quantiteIllimite: this.system.illimite,
nbLots,

View File

@ -428,7 +428,7 @@ export class RdDItem extends Item {
}
await DialogItemVente.display({
item: this,
service,
service: service,
quantiteMax,
callback: async (vente) => {
vente["properties"] = this.getProprietes();