Ordre pour l'export

4.0
Ordre pour l'export
0
Tags: #<Tag:0x00007f6487e06a30>

#1

Bonjour,
J’ai besoin de votre aide pour un cas d’export/import que je n’arrive pas gérer :

Un compte bancaire peut être associé à un et une seule société (0,1)
Une société doit avoir un compte bancaire associé pour pouvoir passer en statut « Validée ».

Ce contrôle est fait dans le postValidate de l’objet :
ImmoCompany.postValidate = function() {
if (this.getField(“companyStatus”).getValue() ==“20” || this.getField(“companyStatus”).getValue() ==“30”) {
var a =this.getRowId();
var o = this.getGrant().getTmpObject(“ImmoBankAccount”);
o.resetFilters();
o.getField(“bankAccImmoCompanyId”).setFilter(a);
var rows = o.search();
if (rows.size() < 1) {
console.error(“Un compte bancaire associé est obligatoire pour le statut ‘Active’”);
return Message.formatError(“ERR_COMPANY_BANK”, null, a);
}

Supposons que la SOC-00001 est validée et associée au compte CB-00001.
Lors de la définition de l’ordre de l’export des objets (et donc de l’import), si je mets l’objet CB en premier, j’obtiens une erreur de Validation de la société SOC-00001 qui n’existe pas encore.
Si je mets l’objet société avant, c’est la validation du CB-00001 qui plante.

Auriez-vous une idée svp comment puis-je faire ? Puis-je mettre une condition dans le postValidate de la société pour empêcher l’exécution de ce contrôle lors d’un import par exemple ?
Merci d’avance.
Abed.


(François Genestin) #2

Ca se mord la queue, il faut donc exclure ce test lors de l’import en vérifiant quelle instance d’objet travaille.

Pour ne pas faire le test au moment de l’import :

if (!this.isBatchInstance()) ...

Ou pour faire le test que sur l’instance principale UI :

if (this.isMainInstance()) ...

ps : pour nous rendre lisible vos posts dans le forum vous pouvez encadrer votre code par des triples ``` et utiliser une syntaxe markdown