In the SAP Invoice forms, we are required to display the amount in both number and word formats. So, we will see how to convert amount in word format using JavaScript code.
Table of Contents
Note: The form language is "JavaScript", and the event is a calculation.
Prerequisite: In the code part, please properly connect the "Total amount field", "Currency field", and the "Final Output Field".
Convert Amount in Word - Code is Here
var one_to_twenty=["One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Eleven","Twelve","Thirten","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"];
var twenty_to_ninety= ["Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"];
var result="";
var str1 = Form.bdyPage.item_table.sub1.sub2.grandTotal.formattedValue; // Total amount field
// var str1 = "13341000.00";
var resultwords = getIt(inputStr);
var resultwords1 = getIt(inputStr1);
if (resultwords1.length == 0) {
resultwords1= "Zero";
}
var CurrencyVal = Form.bdyPage.item_table.sub1.sub2.currencyCode.rawValue; // Currency field
var Paisaval;
var Rupeesval;
if (CurrencyVal == "INR") {
Paisaval="Paisa";
Rupeesval = "Rupees";
}
else if (CurrencyVal =="USD") {
Rupeesval = "Dollar"
Paisaval = "Cents";
}
else if(CurrencyVal=="AED") {
Paisaval="Fils";
}
else if(CurrencyVal=="EUR") {
Paisaval ="Cents";
}
AmountInWords.rawValue = CurrencyVal + " " + resultwords+" " + Rupeesval + " and " + resultwords1 + " "+Paisaval+" Only"; // Output Format
function getIt(_ints1){
  if(_ints1.length>7){//for crores
           var _ints2=_ints1.substring(_ints1.length-7,_ints1.length);
           _ints1=_ints1.substring(0,_ints1.length-7);
           result=getIt(_ints1);
           if(result!="")
           result=result+" Crore ";
           result=result+getIt(_ints2);
  }//for crores
else if(_ints1.length>5) { //for lakhs
           var _ints2=_ints1.substring(_ints1.length-5,_ints1.length);
           _ints1=_ints1.substring(0,_ints1.length-5);
           if(_ints1.length>2)
           _ints1=_ints1.substring(_ints1.length-2,_ints1.length);
           result=getIt(_ints1);
           if(result!="")
           result=result+" Lakh ";
           result=result+getIt(_ints2);
  }//for lakhs
else if(_ints1.length>3) {//for thousands
           var _ints2=_ints1.substring(_ints1.length-3,_ints1.length);
           _ints1=_ints1.substring(0,_ints1.length-3);
           if(_ints1.length>2)
           _ints1=_ints1.substring(_ints1.length-2,_ints1.length);
           result=getIt(_ints1);
           if(result!="")
           result=result+" Thousand ";
           result=result+getIt(_ints2);
  }//for thousands
else if(_ints1.length>2) {//for hundred
           var _ints2=_ints1.substring(_ints1.length-2,_ints1.length);
           _ints1=_ints1.substring(0,_ints1.length-2);
           if(_ints1.length>1)
           _ints1=_ints1.substring(_ints1.length-1,_ints1.length);
           result=getIt(_ints1);
           if(result!="")
           result=result+" Hundred ";
           var result1=getIt(_ints2);
           if(result1!="")
           result=result+" "+result1;
  }//for hundred
else if(_ints1.length<=2) {//for others
           if((_ints1>=1)&&(_ints1<=19)) {
               return one_to_twenty[_ints1-1];
           }
           else if((_ints1==20)||(_ints1==30)||(_ints1==40)||(_ints1==50)||(_ints1==60)||(_ints1==70)||(_ints1==80)||(_ints1==90)){
               var t=_ints1/10;
               return twenty_to_ninety[t-2];
           }
           else if(_ints1==0)
               return "";
           else{
               var t=_ints1.charAt(0);
               var t1=_ints1.charAt(1);
               return twenty_to_ninety[t-2]+" "+one_to_twenty[t1-1];
           }
  }//for others
  return result;
}
Form.bdyPage.item_table.sub1.sub2.amountinwords.rawValue = AmountInWords.rawValue; // Final Output Field
For Example
Total amount field = 1250.00 (Input Field)
or
Form.bdyPage.item_table.sub1.sub2.grandTotal.formattedValue = 1250.00
and
Currency field = INR (Input Field)
or
Form.bdyPage.item_table.sub1.sub2.currencyCode.rawValue; = INR
Based on Output Format ( CurrencyVal + " " + resultwords+" " + Rupeesval + " and " + resultwords1 + " "+Paisaval+" Only") // Output Format written in code // You can change based on the requirement.
Final Output Field = INR one thousand two hundred fifty Rupees and Zero Paisa Only
or
Form.bdyPage.item_table.sub1.sub2.amountinwords.rawValue = INR one thousand two hundred fifty Rupees and Zero Paisa Only
Read More: Learn more JavaScript Code and FormCalc for Adobe form in SAP, and Learn Adobe form Script.