Valoriser un champ dans l'initCreate

Valoriser un champ dans l'initCreate
0
Tags: #<Tag:0x00007f5e56689aa0>

Bonjour,

Je voudrais valoriser un attribut dans un hook initCreate, à partir d’un attribut ramené d’un objet parent. Voici mon code :

ImmoAccountingFinancial.initCreate = function() {
	var parent		= this.getParentObjectRefField();
	var generalAcc	= this.getField("accountingFiGeneralAcc");
	var fk_Lease	= this.getField("accountingFiImmoLeaseId");
	//lorsqu’on saisit une écriture comptable à partir d’un bail, on alimente par défaut le compte général par la valeur du compte général du bien
	if (parent == 'accountingFiImmoLeaseId' && !this.getContext().isList()) {
		var leaseId = this.getField("leaseId").getValue();				
		var leaseId2 = this.getField("accountingFiImmoLeaseId.leaseId").getValue();						
console.log("leaseId = " + leaseId + " / leaseId2 = " + leaseId2);		
//		generalAcc.setValue('411'+leaseId.substring(5));
		fk_Lease.setUpdatable(false);
	} else {		
		fk_Lease.setUpdatable(true);
	}
};

Quand je clique sur créer, les champs leaseId et leaseId 2 restent vides.


2020-01-02 19:34:17,087 INFO [com.simplicite.util.ScriptInterpreter] SIMPLICITE|http://e3m.simplicite.io:10118||INFO|designer|com.simplicite.util.ScriptInterpreter|ImmoAccountingFinancial/the_ajax_ImmoAccountingFinancial||Evénement: leaseId = / leaseId2 =
2020-01-02 19:33:25,806 INFO [com.simplicite.util.ScriptInterpreter] SIMPLICITE|http://e3m.simplicite.io:10118||INFO|aek_inv@e3m.xyz|com.simplicite.util.ScriptInterpreter|ImmoAccountingFinancial/the_ajax_ImmoAccountingFinancial||Evénement: leaseId = / leaseId2 =

Pourtant, le champ leaseId (Code bail) est bien affiché dans l’onglet “Bail” :

Aurais-je oublié qq choses ?
Merci d’avance pour votre aide.
Abed.

Le hook initCreate est le hook de préparation de l’objet en vue de se création. Il s’exécute donc avant l’affichage du formulaire de création. On ne peut donc pas valoriser de choses à partir de choses qui ne sont pas encore sélectionnées…

Il faut donc appliquer ces règles de calcul à la fois dans le preValidate s’il s’agit d’un attribut persistant ou dans le initUpdate s’il s’agit d’un attribut non persistant.

Merci @david.
Je pensais pouvoir afficher la valeur ramenée dans le champ cible à l’ouverture du formulaire de création, en me servant des attributs ramené du père, et ne pas le laisser vide jusqu’à la validation de l’écran (preValidate). Il n’y a pas un autre hook qui me permets de le faire ?