Fix: transfert de contenants
Le transfert de contenants faisait une copie et perdait les rangements à cause de l'utilisation de _id
This commit is contained in:
parent
1fdfa6a834
commit
806d44522d
@ -1251,17 +1251,12 @@ export class RdDActor extends Actor {
|
|||||||
itemsList.push({ id: itemId, conteneurId: undefined }); // Init list
|
itemsList.push({ id: itemId, conteneurId: undefined }); // Init list
|
||||||
sourceActor.buildSubConteneurObjetList(itemId, itemsList); // Get itemId list
|
sourceActor.buildSubConteneurObjetList(itemId, itemsList); // Get itemId list
|
||||||
|
|
||||||
let itemMap = {};
|
|
||||||
const itemsDataToCreate = itemsList.map(it => sourceActor.getObjet(it.id))
|
const itemsDataToCreate = itemsList.map(it => sourceActor.getObjet(it.id))
|
||||||
.map(it => duplicate(Misc.data(it)))
|
.map(it => duplicate(Misc.data(it)))
|
||||||
.map(it => { it.data.contenu = []; return it; });
|
.map(it => { it.data.contenu = []; return it; });
|
||||||
let newItems = await this.createEmbeddedDocuments('Item', itemsDataToCreate);
|
let newItems = await this.createEmbeddedDocuments('Item', itemsDataToCreate);
|
||||||
for (let i = 0; i < itemsList.length; i++) {
|
|
||||||
const srcItem = itemsList[i];
|
let itemMap = this._buildMapOldNewId(itemsList, newItems);
|
||||||
const newItem = newItems[i];
|
|
||||||
console.log('New object', newItem, srcItem);
|
|
||||||
itemMap[srcItem.id] = newItem._id; // Pour garder le lien ancien / nouveau
|
|
||||||
}
|
|
||||||
|
|
||||||
for (let item of itemsList) { // Second boucle pour traiter la remise en conteneurs
|
for (let item of itemsList) { // Second boucle pour traiter la remise en conteneurs
|
||||||
// gestion conteneur/contenu
|
// gestion conteneur/contenu
|
||||||
@ -1282,6 +1277,14 @@ export class RdDActor extends Actor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_buildMapOldNewId(itemsList, newItems) {
|
||||||
|
let itemMap = {};
|
||||||
|
for (let i = 0; i < itemsList.length; i++) {
|
||||||
|
itemMap[itemsList[i].id] = newItems[i].id; // Pour garder le lien ancien / nouveau
|
||||||
|
}
|
||||||
|
return itemMap;
|
||||||
|
}
|
||||||
|
|
||||||
async regrouperEquipementsSimilaires(item, dest) {
|
async regrouperEquipementsSimilaires(item, dest) {
|
||||||
await dest.quantiteIncDec(Misc.templateData(item).quantite);
|
await dest.quantiteIncDec(Misc.templateData(item).quantite);
|
||||||
await item.delete();
|
await item.delete();
|
||||||
|
Loading…
Reference in New Issue
Block a user