Arquivo Auxiliar

Este arquivo é responsável por armazenar todas as funções que não são essencias para as funcionalidades do script.

Função formatMoney(casas, separador dec, separado milhar)

Number.prototype.formatMoney = function(c, d, t){
var n = this, 
    c = isNaN(c = Math.abs(c)) ? 2 : c, 
    d = d == undefined ? "." : d, 
    t = t == undefined ? "," : t, 
    s = n < 0 ? "-" : "", 
    i = String(parseInt(n = Math.abs(Number(n) || 0).toFixed(c))), 
    j = (j = i.length) > 3 ? j % 3 : 0;
   return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
 };

Formata um número para um o formato decimal com número de casas “C”, o separador decimal padrão é “.” e o separador milhar padrão é “,”

No exemplo aplicado abaixo a saída seria 25,50

(25.5).formatMoney(2, ',', '');

Função right(valor)

String.prototype.right = function() {
    return this.substr(this.length - (arguments[0] == undefined ? 1 : parseInt(arguments[0])), this.length);
}

Ela serve para extrair as x últimas letras de uma String.

No exemplo aplicado abaixo a saída é “plo”.

var texto = exemplo
texto.right(3);

Função pad(x,y)

function pad(number, length) {
    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }
    return str;
}

Ela serve para escrever um número sempre utilizando um numero x de casas.

No exemplo aplicado abaixo a saída é “0006”.

pad(6,4) 

Funçao Extenso(x)

Está função foi desenvolvida pelo Marcelo Camargo e copiada deste link

Abra para ver o código da função
function Extenso(n, moeda, moedas, centavo, centavos) {
var j, x, m, r, ri, rd, d, i, casas, erro;
var v1 = 0,
    v2 = 0,
    v3 = 0,
    v4 = 0,
    v5 = 0,
    v6 = 0;
r = "";
rd = "";
ri = "";
i = parseInt(n);
d = n - i;
d = d.toFixed(2);
d = d * 100;
d = d.toFixed(0);
casas = i.toString().length;
if (n == "?") {
    return "Função Extenso() Marcelo Camargo - marcelocamargo@gmail.com";
}
if (n < 0) {
    return "Erro: número negativo";
}
if (moeda != null) {
    if (moedas == null || centavo == null || centavos == null || moeda == "" || moedas == "" || centavo == "" || centavos == "") {
        return "Erro: parâmetros de moeda";
    }
}
if (d == 100) {
    d = 0;
    i = i + 1;
}
if (casas > 12) {
    v5 = (parseInt(i / 1000000000000) * 1000000000000 - parseInt(i / 1000000000000000) * 1000000000000000) / 1000000000000;
    if (v5 > 0) {
        j = "";
        x = CentenaExtenso(v5);
        if (v5 > 1) {
            ri = ri + j + x + " trilhões";
        } else {
            ri = ri + j + x + " trilhão";
        }
    }
}
if (casas > 9) {
    v4 = (parseInt(i / 1000000000) * 1000000000 - parseInt(i / 1000000000000) * 1000000000000) / 1000000000;
    if (v4 > 0) {
        if (v5) {
            j = ", ";
        } else {
            j = "";
        }
        x = CentenaExtenso(v4);
        if (v4 > 1) {
            ri = ri + j + x + " bilhões";
        } else {
            ri = ri + j + x + " bilhão";
        }
    }
}
if (casas > 6) {
    v3 = (parseInt(i / 1000000) * 1000000 - parseInt(i / 1000000000) * 1000000000) / 1000000;
    if (v3 > 0) {
        if (v4 + v5) {
            j = ", ";
        } else {
            j = "";
        }
        x = CentenaExtenso(v3);
        if (v3 > 1) {
            ri = ri + j + x + " milhões";
        } else {
            ri = ri + j + x + " milhão";
        }
    }
}
if (casas > 3) {
    v2 = (parseInt(i / 1000) * 1000 - parseInt(i / 1000000) * 1000000) / 1000;
    if (v2 > 0) {
        if (v3 + v4 + v5) {
            j = ", ";
        } else {
            j = "";
        }
        x = CentenaExtenso(v2);
        if (v2 == 1) {
            ri = ri + j + "mil";
        } else {
            ri = ri + j + x + " mil";
        }
    }
}
if (casas > 0) {
    v1 = (parseInt(i).toFixed(0)) - (parseInt(i / 1000).toFixed(0) * 1000);
    if (v1 > 0) {
        if (v2 + v3 + v4 + v5) {
            if (v1 <= 100) {
                j = " e ";
            } else {
                j = ", ";
            }
        } else {
            j = "";
        }
        x = CentenaExtenso(v1);
        ri = ri + j + x;
    }
}
if (moeda == null) {
    moedas = "reais";
    moeda = "real";
    centavos = "centavos";
    centavo = "centavo";
}
if ((d != 0 && moeda == "inteiro") || moeda != "inteiro") {
    if (i > 0 && !v1) {
        ri = ri + " de " + moedas;
    } else if (i > 1 && v1 == 1) {
        ri = ri + " " + moedas;
    } else if (v1 == 1) {
        ri = ri + " " + moeda;
    } else if (v1 > 1) {
        ri = ri + " " + moedas;
    } else if (i == 1) {
        ri = ri + " " + moeda;
    }
}
if (d == 1) {
    rd = "um " + centavo;
} else if (d > 1 && d < 100) {
    rd = CentenaExtenso(d) + " " + centavos;
}
if (i < 1 && d > 0 && moeda != "inteiro") {
    rd = rd + " de " + moeda;
} else if (i == 0 && d == 0) {
    rd = "zero " + moeda;
}
if (d > 0 && i > 0) {
    rd = " e " + rd;
}
r = ri + rd;
return r;
}
function CentenaExtenso(n) {
    var u, d, c, casas;
    var r = "";
    var t1 = ["um", "dois", "três", "quatro", "cinco", "seis", "sete", "oito", "nove"];
    var t2 = ["dez", "onze", "doze", "treze", "quatorze", "quinze", "dezesseis", "dezessete", "dezoito", "dezenove"];
    var t3 = ["vinte", "trinta", "quarenta", "cinquenta", "sessenta", "setenta", "oitenta", "noventa"];
    var t4 = ["cento", "duzentos", "trezentos", "quatrocentos", "quinhentos", "seiscentos", "setecentos", "oitocentos", "novecentos"];
    casas = n.toString().length;
    u = 0;
    d = 0;
    c = 0;
    if (n > 0) {
        u = parseInt(n.toString().substr(casas - 1, 1));
    }
    if (n > 9) {
        d = parseInt(n.toString().substr(casas - 2, 1));
    }
    if (n > 99) {
        c = parseInt(n.toString().substr(casas - 3, 1));
    }
    if (n == 100) {
        return "cem";
    } else {
        if (c > 0) {
            r = r + t4[c - 1];
            if (d > 0 || u > 0) {
                r = r + " e ";
            }
        }
        if (d > 1) {
            r = r + t3[d - 2];
            if (u > 0) {
                r = r + " e ";
            }
        } else if (d == 1 && u >= 0) {
            r = r + t2[d + u - 1];
        }
        if (u > 0 && d != 1) {
            r = r + t1[u - 1];
        }
    }
    return r;
}

Ela serve para escrever um número por extenso. O valor de entrada deve obrigatoriamente ser definido como Number!

No exemplo aplicado abaixo a saída é “cento e cinco”.

Extenso(105)