Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- convertPriceToWords: function (price) {
- let final = '';
- const singles = ['', 'един', 'две', 'три', 'четири', 'пет', 'шест', 'седем', 'осем', 'девет'];
- const tens = ['десет', 'единадесет', 'дванадесет', 'тринадесет', 'четиринадесет', 'петнадесет',
- 'шестнадесет', 'седемнадесет', 'осемнадесет', 'деветнадесет'];
- const twenties = ['десет', 'двадесет', 'тридесет', 'четиридесет', 'петдесет', 'шестдесет', 'седемдесет',
- 'осемдесет', 'деветдесет'];
- const hundreds = ['сто', 'двеста', 'триста', 'четиристотин', 'петстотин', 'шестстотин', 'седемстотин',
- 'осемстотин', 'деветстотин'];
- if (typeof price === "number") {
- final = `${price.toFixed(2)} (`;
- price = price.toString();
- let decimalPoint = price.indexOf('.');
- if (decimalPoint === -1) {
- decimalPoint = price.length;
- }
- let numbers = price.split('');
- for (let i = 0; i < decimalPoint; i++) {
- if (decimalPoint === 6 && i === 0) { // стотици хиляди
- if (numbers[i] === '1') {
- final += ` ${hundreds[Number(numbers[i]) - 1]}`;
- i++;
- } else if (numbers[i] !== '0') {
- final += ` ${hundreds[Number(numbers[i]) - 1]}`;
- i++;
- }
- // десетиците от стотиците хиляди
- if (numbers[i] === '0') {
- if (numbers[i + 1] === '0') {
- final += ' хиляди';
- i += 2;
- } else {
- final += ' и';
- if (numbers[i + 1] === '1') {
- final += ' една'
- } else {
- final += ` ${singles[Number(numbers[i + 1])]}`
- }
- final += ' хиляди';
- i += 2;
- }
- } else {
- numbers[ i + 1] === '0' || numbers[i] === '1' ? final += ' и' : '';
- if (numbers[i] === '1') {
- final += ` ${tens[Number(numbers[i + 1])]}`;
- } else {
- final += ` ${twenties[Number(numbers[i] - 1)]}`;
- }
- if (numbers[i + 1] === '1' && numbers[i] !== '1') {
- final += ' и една';
- } else if (numbers[i + 1] !== '0' && numbers[i] !== '1') {
- final += ` и ${singles[Number(numbers[i + 1])]}`;
- }
- final += ' хиляди';
- i += 2;
- }
- // стотици
- if (numbers[i] !== '0') {
- if (numbers[i + 1] === '0' && numbers[i + 2] === '0') {
- final += ' и';
- final += ` ${hundreds[Number(numbers[i]) - 1]}`;
- final += ' лева';
- i += 2;
- } else if (numbers[i + 1] !== '0') {
- final += ` ${hundreds[Number(numbers[i]) - 1]}`;
- i++;
- if (numbers[i] === '1') {
- final += ` и ${tens[Number(numbers[i + 1])]} лева`;
- } else {
- if (numbers[i + 1] === '0') {
- final += ` и ${twenties[Number(numbers[i] - 1)]} лева`;
- } else {
- final += ` ${twenties[Number(numbers[i] - 1)]}`;
- if (numbers[i + 1] === '2') {
- final += ' и два лева';
- } else {
- final += ` и ${singles[Number(numbers[i + 1])]} лева`;
- }
- }
- }
- } else {
- final += ` ${hundreds[Number(numbers[i]) - 1]}`;
- i += 2;
- if (numbers[i] === '2') {
- final += ' и двa лева';
- } else {
- final += ` и ${singles[Number(numbers[i])]} лева`;
- }
- }
- } else {
- i++;
- if (numbers[i] === '0') {
- i++;
- if(numbers[i] === '2') {
- final += ' и два лева';
- } else {
- final += ` и ${singles[Number(numbers[i])]} лева`;
- }
- } else if (numbers[i] === '1') {
- final += ` и ${tens[Number(numbers[i + 1])]} лева`;
- } else {
- final += ` ${twenties[Number(numbers[i] - 1)]}`;
- if (numbers[i + 1] === '2') {
- final += ' и два лева';
- } else {
- final += ` и ${singles[Number(numbers[i + 1])]} лева`;
- }
- }
- }
- } else if (decimalPoint === 5 && i === 0) { // десетки хиляди
- if (numbers[i] === '1') {
- i++;
- final += ` ${tens[Number(numbers[i])]}`;
- } else if (numbers[i] !== '0') {
- final += ` ${twenties[Number(numbers[i]) - 1]}`;
- i++;
- if (numbers[i] === '1') {
- final += ` и една`;
- } else if (numbers[i] === '2') {
- final += ' и две';
- } else if (numbers[i] !== '0') {
- final += ` и ${singles[Number(numbers[i])]}`;
- }
- }
- final += ' хиляди';
- i++;
- final += (numbers[i + 1] === '0' && numbers[i + 2] === '0') ? ' ' : 'и';
- if (numbers[i] === '1') {
- final += ' сто';
- } else if (numbers[i] === '2') {
- final += ' двеста';
- } else if (numbers[i] === '3') {
- final += ' триста';
- } else {
- final += ` ${singles[Number(numbers[i])]}` + `${numbers[i] !== '0' ? 'стотин' : ''}`;
- }
- i++;
- if (numbers[i] === '1') {
- final += ` и ${tens[Number(numbers[i + 1])]}`;
- } else if (numbers[i] !== '0') {
- final += numbers[i + 1] === '0' ? ' и' : '';
- final += ` ${twenties[Number(numbers[i] - 1)]}`;
- }
- i++;
- // единици
- if (numbers[i - 1] !== '1') {
- if (numbers[i] === '1') {
- final += ' и един';
- } else if (numbers[i] === '2') {
- final += ' и два';
- } else if (numbers[i] !== '0') {
- final += ` и ${singles[Number(numbers[i])]}`;
- }
- }
- final += ' лева';
- // хиляди
- } else if (decimalPoint === 4 && i === 0) {
- if (numbers[i] === '1') {
- final += ' хиляда';
- } else {
- final += ` ${singles[Number(numbers[i])]} хиляди`;
- }
- i++;
- final += (numbers[i + 1] === '0' && numbers[i + 2] === '0') ? '' : ' и';
- if (numbers[i] === '1') {
- final += ' сто';
- } else if (numbers[i] === '2') {
- final += ' двеста';
- } else if (numbers[i] === '3') {
- final += ' триста';
- } else {
- final += ` ${singles[Number(numbers[i])]}` + `${numbers[i] !== '0' ? 'стотин' : ''}`;
- }
- i++;
- if (numbers[i] === '1') {
- final += ` и ${tens[Number(numbers[i + 1])]}`;
- } else if (numbers[i] !== '0') {
- final += numbers[i + 1] === '0' ? ' и' : '';
- final += ` ${twenties[Number(numbers[i] - 1)]}`;
- }
- i++;
- if (numbers[i - 1] !== '1') {
- if (numbers[i] === '1') {
- final += ' и един';
- } else if (numbers[i] === '2') {
- final += ' и два';
- } else if (numbers[i] !== '0') {
- final += ` и ${singles[Number(numbers[i])]}`;
- } else {
- }
- }
- final += ' лева';
- // стотици
- } else if (decimalPoint === 3 && i === 0) {
- if (numbers[i] === '1') {
- final += ' сто';
- } else if (numbers[i] === '2') {
- final += ' двеста';
- } else if (numbers[i] === '3') {
- final += ' триста';
- } else {
- final += ` ${singles[Number(numbers[i])]}` + `${numbers[i] !== '0' ? 'стотин' : ''}`;
- }
- i++;
- if (numbers[i] === '1') {
- final += ` и ${tens[Number(numbers[i + 1])]}`;
- } else if (numbers[i] !== '0') {
- final += numbers[i + 1] === '0' ? ' и' : '';
- final += ` ${twenties[Number(numbers[i] - 1)]}`;
- }
- i++;
- if (numbers[i - 1] !== '1') {
- if (numbers[i] === '1') {
- final += ' и един';
- } else if (numbers[i] === '2') {
- final += ' и два';
- } else if (numbers[i] !== '0') {
- final += ` и ${singles[Number(numbers[i])]}`;
- }
- }
- final += ' лева';
- // десетки
- } else if (decimalPoint === 2 && i === 0) {
- if (numbers[i] === '1') {
- final += ` ${tens[Number(numbers[i + 1])]}`;
- } else if (numbers[i] !== '0') {
- final += ` ${twenties[Number(numbers[i] - 1)]}`;
- }
- i++;
- if (numbers[i - 1] !== '1') {
- if (numbers[i] === '1') {
- final += ' и един';
- } else if (numbers[i] === '2') {
- final += ' и два';
- } else if (numbers[i] !== '0') {
- final += ` и ${singles[Number(numbers[i])]}`;
- }
- }
- final += ' лева';
- } else if (decimalPoint === 1 && i === 0) {
- if (numbers[i] === '1') {
- final += ' един';
- } else if (numbers[i] === '2') {
- final += ' два';
- } else if (numbers[i] !== '0') {
- final += ` ${singles[Number(numbers[i])]}`;
- }
- final += ' лева';
- }
- }
- if (decimalPoint !== price.length) {
- final += ' и';
- let lastIndex = numbers.length - 1;
- let preLastIndex = numbers.length - 2;
- if (numbers[lastIndex] === '0' && numbers[preLastIndex] === '0') {
- final += ' нула стотинки';
- } else if (preLastIndex === decimalPoint) {
- final += ` ${twenties[Number(numbers[lastIndex] - 1)]} стотинки`;
- } else {
- if (numbers[preLastIndex] === '1') {
- final += ` ${tens[Number(numbers[lastIndex])]} стотинки`;
- } else if (numbers[preLastIndex] !== '0') {
- final += ` ${twenties[Number(numbers[preLastIndex] - 1)]}`;
- if (numbers[lastIndex] === '1') {
- final += ' и една стотинки';
- } else {
- final += numbers[lastIndex] === '0' ? ' стотинки' : ` и ${singles[Number(numbers[lastIndex])]} стотинки`;
- }
- } else {
- if (numbers[lastIndex] === '1') {
- final += ' една стотинка';
- } else {
- final += ` ${singles[Number(numbers[lastIndex])]} стотинки`;
- }
- }
- }
- }
- final += ' )';
- }
- return final.replace('.', ',');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement