Javascript dans le champ de formulaire Adobe - conversion d'une "valeur d'échange" à multiplier si elle se situe dans la plage spécifiée

2020-06-30 javascript if-statement range adobe

Im essayant de créer un calculateur de gamme Javascript pour un "échange de la valeur d'une voiture" c'est une petite partie d'un énorme projet sur lequel je travaille, j'ai la version finale dans un fichier Excel mais j'ai décidé de refaire dans Adobe Acrobat Pro en utilisant Javascript , le but est d'ajuster la valeur d'un nombre s'il se situe entre les plages ci-dessous, si quelqu'un peut m'orienter dans la bonne direction pour faire fonctionner ce code, j'apprécie vraiment!

In plain text below,

Trade Value X 2.00 If Less Than 5999.00;
Trade Value X 1.75 If Greater Than 5999.00 But Less Then 9000.00;
Trade Value X 1.50 if Greater Than 9000.00 But less Than 11,000.00;
Trade Value X 1.40 if Greater Than 11,000.00 But less Than 12,000.00;
Trade Value X 1.35 if Greater Than 12,000.00 But less Than 13,000.00;
Trade Value X 1.30 if Greater Than 13,000.00 But less Than 14,000.00;
Trade Value X 1.25 if Greater Than 14,000.00 But less Than 17,000.00;
Trade Value X 1.20 if Greater Than 17,000.00 But less Than 20,000.00;
Trade Value X 1.15 if Greater Than 20,000.00 But less Than 24,000.00;
Trade Value X 1.10 if Greater Than 24,000.00;

Devrait = champ «Montant financé» dans Adobe

Le code im essayant d'implémenter:

var VTV = Number(this.getField("VehicleTradeValue").valueAsString);
var AMF = Number(this.getField("AmountFinanced").valueAsString);
((VehicleTradeValue)*2.00) If (VehicleTradeValue) < 5999.00;
elif:
((VehicleTradeValue)*1.75) If (VehicleTradeValue) < 5999.00 < 9000.00;
elif:
((VehicleTradeValue)*1.50) if (VehicleTradeValue) > 9000.00 < 11,000.00;
elif:
((VehicleTradeValue)*1.40) if (VehicleTradeValue) > 11,000.00 < 12,000.00;
elif:
((VehicleTradeValue)*1.35) if (VehicleTradeValue) > 12,000.00 < 13,000.00;
elif:
((VehicleTradeValue)*1.30) if (VehicleTradeValue) > 13,000.00 < 14,000.00;
elif:
((VehicleTradeValue)*1.25) if (VehicleTradeValue) > 14,000.00 < 17,000.00;
elif:
((VehicleTradeValue)*1.20) if (VehicleTradeValue) > 17,000.00 < 20,000.00;
elif:
((VehicleTradeValue)*1.15) if (VehicleTradeValue) > 20,000.00 < 24,000.00;
else:
((VehicleTradeValue)*1.10) if (VehicleTradeValue) > 24,000.00;
    event.value = self;

Answers

Le code serait comme:

function adjustVTV(val, separator = ',', every = 3){
  let vtv = +val.replace(/,/g, ''), n;
  if(vtv < 5999){
    vtv *= 2;
  }
  else if(vtv < 9000){
    vtv *= 1.75;
  }
  else if(vtv < 11000){
    vtv *= 1.5;
  }
  else if(vtv < 12000){
    vtv *= 1.4;
  }
  else if(vtv < 13000){
    vtv *= 1.35;
  }
  else if(vtv < 14000){
    vtv *= 1.3;
  }
  else if(vtv < 17000){
    vtv *= 1.25;
  }
  else if(vtv < 20000){
    vtv *= 1.2;
  }
  else if(vtv < 24000){
    vtv *= 1.15;
  }
  else{
    vtv *= 1.1;
  }
  vtv = vtv.toFixed(2).split('.'); n = vtv[0].split('');
  for(let i=n.length-every,z=0; i>z; i-=every){
    n.splice(i, 0, separator);
  }
  return n.join('')+'.'+vtv[1];
}
/* your use 
let vtv = +this.getField('VehicleTradeValue').valueAsString), amf = +this.getField('AmountFinanced').valueAsString;
console.log(adjustVTV(vtv));
*/
// example
console.log(adjustVTV('5998.99'));
console.log(adjustVTV('8999.99'));
console.log(adjustVTV('10999.99'));
console.log(adjustVTV('11999.99'));
console.log(adjustVTV('12999.99'));
console.log(adjustVTV('13999.99'));
console.log(adjustVTV('16999.99'));
console.log(adjustVTV('19999.99'));
console.log(adjustVTV('23999.99'));
console.log(adjustVTV('24,000.00'));

Voici enfin la réponse !!!

var vtv = this.getField ("VehicleTradeValue"). value;

if( vtv <= 6000) event.value = (vtv * 2.0);
else if ( vtv <= 9000) event.value = (vtv * 1.75);
else if( vtv <= 11000) event.value = (vtv * 1.50);
else if( vtv <= 12000) event.value = (vtv * 1.40);
else if( vtv <= 13000) event.value = (vtv * 1.35);
else if( vtv <= 14000) event.value = (vtv * 1.30);
else if( vtv <= 17000) event.value = (vtv * 1.25);
else if( vtv <= 20000) event.value = (vtv * 1.20);
else if( vtv <= 24000) event.value = (vtv * 1.15);
else ( vtv <= 200000) event.value = (vtv * 1.10);

Related