Fix: vente de service avec quantité
This commit is contained in:
parent
84f4a152a8
commit
2546b89b44
@ -3776,7 +3776,7 @@ export class RdDActor extends Actor {
|
|||||||
const vente = achat.vente;
|
const vente = achat.vente;
|
||||||
const quantite = (achat.choix.nombreLots ?? 1) * (vente.tailleLot);
|
const quantite = (achat.choix.nombreLots ?? 1) * (vente.tailleLot);
|
||||||
const itemVendu = vendeur?.getObjet(vente.item._id) ?? (await RdDItem.getCorrespondingItem(vente.item));
|
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} !`);
|
ChatUtility.notifyUser(achat.userId, 'warn', `Le vendeur n'a pas assez de ${itemVendu.name} !`);
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -3828,8 +3828,8 @@ export class RdDActor extends Actor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
verifierQuantite(service, vendeur, item, quantiteTotal) {
|
verifierQuantite(service, serviceSubItem, vendeur, item, quantiteTotal) {
|
||||||
const disponible = service ? service.getQuantiteDisponible(item, quantiteTotal) : (vendeur ? (item?.getQuantite() ?? 0) : quantiteTotal);
|
const disponible = service ? service.getQuantiteDisponible(serviceSubItem, quantiteTotal) : (vendeur ? (item?.getQuantite() ?? 0) : quantiteTotal);
|
||||||
return disponible >= quantiteTotal;
|
return disponible >= quantiteTotal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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 = {
|
const venteData = {
|
||||||
item,
|
item,
|
||||||
actingUserId: game.user.id,
|
actingUserId: game.user.id,
|
||||||
vendeurId: vendeur?.id,
|
vendeurId: vendeur?.id,
|
||||||
vendeur,
|
vendeur,
|
||||||
acheteur,
|
acheteur,
|
||||||
|
serviceSubItem: serviceSubItem,
|
||||||
service,
|
service,
|
||||||
tailleLot,
|
tailleLot,
|
||||||
quantiteIllimite,
|
quantiteIllimite,
|
||||||
|
@ -23,7 +23,7 @@ export class RdDItemService extends RdDItem {
|
|||||||
getProprietes() { return []; }
|
getProprietes() { return []; }
|
||||||
|
|
||||||
getServiceItem(itemRef) {
|
getServiceItem(itemRef) {
|
||||||
if (this.isService()) {
|
if (itemRef && this.isService()) {
|
||||||
return this.system.items.find(it => it.id == itemRef.id && it.pack == itemRef.pack);
|
return this.system.items.find(it => it.id == itemRef.id && it.pack == itemRef.pack);
|
||||||
}
|
}
|
||||||
return undefined;
|
return undefined;
|
||||||
@ -64,6 +64,7 @@ export class RdDItemService extends RdDItem {
|
|||||||
await DialogItemAchat.onAcheter({
|
await DialogItemAchat.onAcheter({
|
||||||
item: await RdDItem.getCorrespondingItem(subItem),
|
item: await RdDItem.getCorrespondingItem(subItem),
|
||||||
acheteur,
|
acheteur,
|
||||||
|
serviceSubItem: subItem,
|
||||||
service: this,
|
service: this,
|
||||||
quantiteIllimite: this.system.illimite,
|
quantiteIllimite: this.system.illimite,
|
||||||
nbLots,
|
nbLots,
|
||||||
|
@ -428,7 +428,7 @@ export class RdDItem extends Item {
|
|||||||
}
|
}
|
||||||
await DialogItemVente.display({
|
await DialogItemVente.display({
|
||||||
item: this,
|
item: this,
|
||||||
service,
|
service: service,
|
||||||
quantiteMax,
|
quantiteMax,
|
||||||
callback: async (vente) => {
|
callback: async (vente) => {
|
||||||
vente["properties"] = this.getProprietes();
|
vente["properties"] = this.getProprietes();
|
||||||
|
Loading…
Reference in New Issue
Block a user