faker-brasil
Version:
This library provides fake data for users data from Brazil
113 lines (102 loc) • 4.46 kB
JavaScript
const IndustryHelper = require('../helpers/IndustryHelper');
const RandomArrayElement = require('../services/RandomArrayElement');
const DateHelpers = require('../helpers/DateHelpers')
const PersonalData = require('../fabric/PersonalData')
const AddressData = require('../fabric/AddressData')
class IndustryData {
/**
* return a random job
* @returns {string}
*/
job() {
return RandomArrayElement.randomElement(IndustryHelper.jobs());
}
/**
* return a enterprise name
* @returns {string}
*/
enterprise() {
let personalData = new PersonalData();
let finish = ['LTDA', 'MEI', 'SA', 'SS', 'ME', 'EPP', 'Eireli']
let initial = ['Empresa', 'Grupo', 'Conjunto', 'Associados', 'Uniao']
return RandomArrayElement.randomElement(initial) + ' ' + personalData.lastName() + ' ' + RandomArrayElement.randomElement(finish)
}
/**
* generate radom cnpj
* @param {bool} mask
* @returns {string}
*/
cnpj(mask = false) {
let total_array = 8;
let n = 9;
let [n1, n2, n3, n4, n5, n6, n7, n8] = RandomArrayElement.createArrayNumbers(total_array, n);
let n9 = 0;
let n10 = 0;
let n11 = 0;
let n12 = 1;
let d1 = n12 * 2 + n11 * 3 + n10 * 4 + n9 * 5 + n8 * 6 + n7 * 7 + n6 * 8 + n5 * 9 + n4 * 2 + n3 * 3 + n2 * 4 + n1 * 5;
d1 = 11 - (RandomArrayElement.mod(d1, 11));
if (d1 >= 10) d1 = 0;
let d2 = d1 * 2 + n12 * 3 + n11 * 4 + n10 * 5 + n9 * 6 + n8 * 7 + n7 * 8 + n6 * 9 + n5 * 2 + n4 * 3 + n3 * 4 + n2 * 5 + n1 * 6;
d2 = 11 - (RandomArrayElement.mod(d2, 11));
if (d2 >= 10) d2 = 0;
if (mask)
return `${n1}${n2}.${n3}${n4}${n5}.${n6}${n7}${n8}/${n9}${n10}${n11}${n12}-${d1}${d2}`;
else
return `${n1}${n2}${n3}${n4}${n5}${n6}${n7}${n8}${n9}${n10}${n11}${n12}${d1}${d2}`;
}
/**
* return a activity for a enterprise
* @returns {string}
*/
activity() {
return RandomArrayElement.randomElement(IndustryHelper.activity())
}
/**
* return a full enterprise data as object
* @returns {object}
*/
fullEnterPrise(activity = null) {
let name = this.enterprise()
let nameEmpty = RandomArrayElement.removeAllEmptySpaceFromString(name)
let site = nameEmpty.toLocaleLowerCase()
let addressData = new AddressData();
let personalData = new PersonalData();
return {
name: name,
cnpj: this.cnpj(true),
inscription: RandomArrayElement.randomStringOnlyNumbers(12),
openDate: DateHelpers.lessRandomYear(5),
activity: activity ? activity :this.activity(),
site: 'www' + site + 'com.br',
email: personalData.email(nameEmpty),
phone: personalData.phone(true),
cellPhone: personalData.cellPhone(true),
address: addressData.randomFullAddress(),
}
}
/**
* return object o a simple fake nfe
* @returns {object}
*/
nfe() {
return {
number: RandomArrayElement.randomStringOnlyNumbers(3),
serie: 1,
inOrOut: RandomArrayElement.randomElement(['ENTRADA', 'SAIDA']),
accessKey: RandomArrayElement.randomStringOnlyNumbers(44),
operation: RandomArrayElement.randomElement(['Venda de Produto', 'Prestação de Serviços', 'Remessa', 'Consignação', 'Transferência', 'Devolução', 'Devolução de mercadoria', 'Importação', 'Exportação']),
autorizationProtocol: RandomArrayElement.randomStringOnlyNumbers(15) + ' ' + DateHelpers.lessRandomYear(0) + ' ' + DateHelpers.current().split(' ')[1],
crt: RandomArrayElement.randoNumberIn(1, 4),
inscription: RandomArrayElement.randomStringOnlyNumbers(12),
cpnpj: this.cnpj(),
date: DateHelpers.lessRandomYear(0),
baseIcms: RandomArrayElement.randoNumberIn(50, 1000).toString() + ',00',
icms: RandomArrayElement.randoNumberIn(50, 1000).toString() + ',00',
value: RandomArrayElement.randoNumberIn(1000, 10000).toString() + ',00',
weight: RandomArrayElement.randoNumberIn(50, 100).toString()
}
}
}
module.exports = IndustryData;