Convert amount to words in Ax 2012

 

static void John_AmountToWords(Args _args)
{
real amount = 1011.05;
int numOfPennies = frac(amount)*100 mod 100;
int test = real2int(round(amount,0));
int paise;
int numOfTenths;
str 20 ones[19], tenths[9], hundreds, thousands, lakhs, crores, millions, billions;
str 40 textpaise;
int tmpnumofpennies;
int temp;
str 200 returntxt;

int checkPower(int _test, int _power)
{
int numOfPower;

if (_test >= _power)
{
numOfPower = _test DIV _power;
if (numOfPower >= 100)
{
temp = numOfPower DIV 100;
returntxt = returntxt + ‘ ‘ + ones[temp] + ‘ ‘ + hundreds;
numOfPower = numOfPower MOD 100;
}
if (numOfPower >= 20)
{
temp = numOfPower DIV 10;
returntxt = returntxt + ‘ ‘ + tenths[temp];
numOfPower = numOfPower MOD 10;
}
if (numOfPower >= 1)
{
returntxt = returntxt + ‘ ‘ + ones[numOfPower];
numOfPower = numOfPower MOD 10;
}
switch(_power)
{
case 1000000000 :
{
returntxt = returntxt + ‘ ‘ + billions;
_test = _test MOD 1000000000;
break;
}
case 10000000 :
{
returntxt = returntxt + ‘ ‘ + crores;
_test = _test MOD 10000000;
break;
}
case 100000 :
{
returntxt = returntxt + ‘ ‘ + lakhs;
_test = _test MOD 100000;
break;
}
case 1000 :
{
returntxt = returntxt + ‘ ‘ + thousands;
_test = _test MOD 1000;
break;
}
case 100 :
{
returntxt = returntxt + ‘ ‘ + hundreds;
_test = _test MOD 100;
break;
}
}
}
return _test;
}

ones[1] = ‘@SYS26620’;
ones[2] = ‘@SYS26621’;
ones[3] = ‘@SYS26622’;
ones[4] = ‘@SYS26626’;
ones[5] = ‘@SYS26627’;
ones[6] = ‘@SYS26628’;
ones[7] = ‘@SYS26629’;
ones[8] = ‘@SYS26630’;
ones[9] = ‘@SYS26631’;
ones[10] = ‘@SYS26632’;
ones[11] = ‘@SYS26633’;
ones[12] = ‘@SYS26634’;
ones[13] = ‘@SYS26635’;
ones[14] = ‘@SYS26636’;
ones[15] = ‘@SYS26637’;
ones[16] = ‘@SYS26638’;
ones[17] = ‘@SYS26639’;
ones[18] = ‘@SYS26640’;
ones[19] = ‘@SYS26641’;

tenths[1] = ‘Not used’;
tenths[2] = ‘@SYS26643’;
tenths[3] = ‘@SYS26644’;
tenths[4] = ‘@SYS26645’;
tenths[5] = ‘@SYS26646’;
tenths[6] = ‘@SYS26647’;
tenths[7] = ‘@SYS26648’;
tenths[8] = ‘@SYS26649’;
tenths[9] = ‘@SYS26650’;

hundreds = ‘@SYS26651’;
thousands = ‘@SYS26652’;
lakhs = ‘Lakh’;
crores = ‘Crore’;
millions = ‘@SYS26653’;
billions = ‘@SYS26654’;
test = checkPower(test, 1000000000);
test = checkPower(test, 10000000);
test = checkPower(test, 100000);
test = checkPower(test, 1000);
test = checkPower(test, 100);

if (test >= 20)
{
numOfTenths = test DIV 10;
returntxt = returntxt + ‘ ‘ + tenths[numofTenths];
numOfTenths = numOfTenths MOD 10;
test = test MOD 10;
}
if (test >= 1)
{
numOfTenths = test;
returntxt = returntxt + ‘ ‘ + ones[numOfTenths];
}
if (numOfPennies)
{
returntxt = returntxt + ‘ ‘ + ‘@SYS5534’ + ‘\n\n’;
}
paise=numofPennies;
if(paise)
{
if(paise >=20)
{
numofTenths= paise DIV 10;
returntxt=returntxt + ‘ ‘+tenths[numofTenths];
numofTenths = numofTenths MOD 10;
paise=paise MOD 10;
}
if(paise >=1)
{
numOfTenths=paise;
returntxt=returntxt+ ‘ ‘+ones[numOfTenths];
}
returntxt=returntxt+” Paise”;
}

info(strFmt(‘%1’,returntxt + ” Only”));
}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s